forked from sent/waves
11953 lines
2.5 MiB
11953 lines
2.5 MiB
{
|
|
"log": {
|
|
"version": "1.2",
|
|
"creator": {
|
|
"name": "WebInspector",
|
|
"version": "537.36"
|
|
},
|
|
"pages": [
|
|
{
|
|
"startedDateTime": "2023-02-16T22:46:05.815Z",
|
|
"id": "page_1",
|
|
"title": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league",
|
|
"pageTimings": {
|
|
"onContentLoad": 1052.8840000001765,
|
|
"onLoad": 2052.0030000000133
|
|
}
|
|
}
|
|
],
|
|
"entries": [
|
|
{
|
|
"_initiator": {
|
|
"type": "other"
|
|
},
|
|
"_priority": "VeryHigh",
|
|
"_resourceType": "document",
|
|
"cache": {},
|
|
"connection": "12143",
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": ":method",
|
|
"value": "GET"
|
|
},
|
|
{
|
|
"name": ":authority",
|
|
"value": "watchdocumentaries.com"
|
|
},
|
|
{
|
|
"name": ":scheme",
|
|
"value": "https"
|
|
},
|
|
{
|
|
"name": ":path",
|
|
"value": "/wp-content/uploads/games/rocket-league"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
},
|
|
{
|
|
"name": "upgrade-insecure-requests",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "user-agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "accept",
|
|
"value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
|
|
},
|
|
{
|
|
"name": "sec-fetch-site",
|
|
"value": "none"
|
|
},
|
|
{
|
|
"name": "sec-fetch-mode",
|
|
"value": "navigate"
|
|
},
|
|
{
|
|
"name": "sec-fetch-user",
|
|
"value": "?1"
|
|
},
|
|
{
|
|
"name": "sec-fetch-dest",
|
|
"value": "document"
|
|
},
|
|
{
|
|
"name": "accept-encoding",
|
|
"value": "gzip, deflate, br"
|
|
},
|
|
{
|
|
"name": "accept-language",
|
|
"value": "en-US,en;q=0.9"
|
|
},
|
|
{
|
|
"name": "cookie",
|
|
"value": "pvc_visits[0]=1676673822b1190a1676673827b273a1676673879b6224"
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [
|
|
{
|
|
"name": "pvc_visits[0]",
|
|
"value": "1676673822b1190a1676673827b273a1676673879b6224",
|
|
"path": "/",
|
|
"domain": "watchdocumentaries.com",
|
|
"expires": "2023-02-17T22:44:38.945Z",
|
|
"httpOnly": true,
|
|
"secure": true,
|
|
"sameSite": "Lax"
|
|
}
|
|
],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 301,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:46:06 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "text/html; charset=iso-8859-1"
|
|
},
|
|
{
|
|
"name": "location",
|
|
"value": "http://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9d1430ed29c30-IAD"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "68"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "max-age=0"
|
|
},
|
|
{
|
|
"name": "expires",
|
|
"value": "Thu, 16 Feb 2023 22:44:58 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "cf-apo-via",
|
|
"value": "tcache"
|
|
},
|
|
{
|
|
"name": "x-cache",
|
|
"value": "MISS"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=BWJMc798zsR8QyMyQ4BT%2FUEJOA%2FnVtWOKjKs%2FM6jLe5QFWpXRQxsmMkNMHG51fHPiacvIrP2pmQQoj9DotBq6SmdINzsVo9y5lF4zkHcq70n0BIfyhdlE1J%2FJLwg0lgV3Up6KG0wBo0HfyWpFkUV8Yn4KIY%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "X-DNS-Prefetch-Control",
|
|
"value": "off"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "text/html"
|
|
},
|
|
"redirectURL": "http://watchdocumentaries.com/wp-content/uploads/games/rocket-league/",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 1296,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:05.786Z",
|
|
"time": 347.2300000001047,
|
|
"timings": {
|
|
"blocked": 56.55399999997725,
|
|
"dns": 69.98400000000001,
|
|
"ssl": 36.22700000000002,
|
|
"connect": 132.69299999999998,
|
|
"send": 5.792000000000002,
|
|
"wait": 57.98700000011354,
|
|
"receive": 24.220000000013897,
|
|
"_blocked_queueing": 29.682999999977255
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "other"
|
|
},
|
|
"_priority": "VeryHigh",
|
|
"_resourceType": "document",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "http://watchdocumentaries.com/wp-content/uploads/games/rocket-league/",
|
|
"httpVersion": "http/1.1",
|
|
"headers": [
|
|
{
|
|
"name": ":method",
|
|
"value": "GET"
|
|
},
|
|
{
|
|
"name": ":authority",
|
|
"value": "watchdocumentaries.com"
|
|
},
|
|
{
|
|
"name": ":scheme",
|
|
"value": "https"
|
|
},
|
|
{
|
|
"name": ":path",
|
|
"value": "/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "upgrade-insecure-requests",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "user-agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "accept",
|
|
"value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
|
|
},
|
|
{
|
|
"name": "sec-fetch-site",
|
|
"value": "none"
|
|
},
|
|
{
|
|
"name": "sec-fetch-mode",
|
|
"value": "navigate"
|
|
},
|
|
{
|
|
"name": "sec-fetch-user",
|
|
"value": "?1"
|
|
},
|
|
{
|
|
"name": "sec-fetch-dest",
|
|
"value": "document"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
},
|
|
{
|
|
"name": "accept-encoding",
|
|
"value": "gzip, deflate, br"
|
|
},
|
|
{
|
|
"name": "accept-language",
|
|
"value": "en-US,en;q=0.9"
|
|
},
|
|
{
|
|
"name": "cookie",
|
|
"value": "pvc_visits[0]=1676673822b1190a1676673827b273a1676673879b6224"
|
|
},
|
|
{
|
|
"name": "if-modified-since",
|
|
"value": "Fri, 24 Jun 2022 16:54:25 GMT"
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [
|
|
{
|
|
"name": "pvc_visits[0]",
|
|
"value": "1676673822b1190a1676673827b273a1676673879b6224",
|
|
"path": "/",
|
|
"domain": "watchdocumentaries.com",
|
|
"expires": "2023-02-17T22:44:38.945Z",
|
|
"httpOnly": true,
|
|
"secure": true,
|
|
"sameSite": "Lax"
|
|
}
|
|
],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 301,
|
|
"statusText": "Moved Permanently",
|
|
"httpVersion": "HTTP/1.1",
|
|
"headers": [
|
|
{
|
|
"name": "Date",
|
|
"value": "Thu, 16 Feb 2023 22:44:58 GMT"
|
|
},
|
|
{
|
|
"name": "Cache-Control",
|
|
"value": "max-age=3600"
|
|
},
|
|
{
|
|
"name": "Expires",
|
|
"value": "Thu, 16 Feb 2023 23:44:58 GMT"
|
|
},
|
|
{
|
|
"name": "Location",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "Server-Timing",
|
|
"value": "cf-q-config;dur=6.9999998686399e-06"
|
|
},
|
|
{
|
|
"name": "Report-To",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=TxqIBAxcOdmG6e%2FRDieQTFVsKtiAAR9JxC1g1NUciIs8d3IdCUy22scBemKRGIA3FXzEKwnixMbSjvdJZKK0Mo%2FpAUFzxJn%2FHjBN88Mm3UV2n%2FQhCaegjbudGnSFCisSIL5QX%2BtuuLPnMVdmg2du2NUqS64%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "NEL",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "Vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "Server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "CF-RAY",
|
|
"value": "79a9cf988a0b20a2-IAD"
|
|
},
|
|
{
|
|
"name": "X-DNS-Prefetch-Control",
|
|
"value": "off"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/",
|
|
"headersSize": 729,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::681a:2]",
|
|
"startedDateTime": "2023-02-16T22:46:06.063Z",
|
|
"time": 83.87500000003456,
|
|
"timings": {
|
|
"blocked": 33.62099999997635,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 7.914000000090805,
|
|
"receive": 42.339999999967404,
|
|
"_blocked_queueing": 16.624999999976353
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "other"
|
|
},
|
|
"_priority": "VeryHigh",
|
|
"_resourceType": "document",
|
|
"cache": {},
|
|
"connection": "12143",
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": ":method",
|
|
"value": "GET"
|
|
},
|
|
{
|
|
"name": ":authority",
|
|
"value": "watchdocumentaries.com"
|
|
},
|
|
{
|
|
"name": ":scheme",
|
|
"value": "https"
|
|
},
|
|
{
|
|
"name": ":path",
|
|
"value": "/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "upgrade-insecure-requests",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "user-agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "accept",
|
|
"value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
|
|
},
|
|
{
|
|
"name": "sec-fetch-site",
|
|
"value": "none"
|
|
},
|
|
{
|
|
"name": "sec-fetch-mode",
|
|
"value": "navigate"
|
|
},
|
|
{
|
|
"name": "sec-fetch-user",
|
|
"value": "?1"
|
|
},
|
|
{
|
|
"name": "sec-fetch-dest",
|
|
"value": "document"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
},
|
|
{
|
|
"name": "accept-encoding",
|
|
"value": "gzip, deflate, br"
|
|
},
|
|
{
|
|
"name": "accept-language",
|
|
"value": "en-US,en;q=0.9"
|
|
},
|
|
{
|
|
"name": "cookie",
|
|
"value": "pvc_visits[0]=1676673822b1190a1676673827b273a1676673879b6224"
|
|
},
|
|
{
|
|
"name": "if-modified-since",
|
|
"value": "Fri, 24 Jun 2022 16:54:25 GMT"
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 304,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:46:06 GMT"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9d144589b9c30-IAD"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "43621"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "max-age=0"
|
|
},
|
|
{
|
|
"name": "expires",
|
|
"value": "Thu, 16 Feb 2023 09:32:46 GMT"
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:54:25 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "cf-apo-via",
|
|
"value": "tcache"
|
|
},
|
|
{
|
|
"name": "x-cache",
|
|
"value": "MISS"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=u%2BjKtNQetva8FLVeXh0wC%2Fk9QFF%2FVuZRK8PJMfXZogfegS8D0DCj8YV5GWmtghvA5BjmA5vZwE2LQERzBS3o%2F7xdGjO%2F%2FjZ2o3v%2FfpknX%2Fa8QTvMAUrb8CCiJQEuRTIgxXaStR%2B94fe9EJyEtWFboPuvpIM%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "text/html"
|
|
},
|
|
{
|
|
"name": "content-encoding",
|
|
"value": "br"
|
|
},
|
|
{
|
|
"name": "X-DNS-Prefetch-Control",
|
|
"value": "off"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 1395,
|
|
"mimeType": "text/html",
|
|
"text": "<!DOCTYPE html>\n<head>\n<meta charset=\"utf-8\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta name=\"robots\" content=\"noindex, nofollow\">\n<title>Rocket League</title>\n<script>\n window.config = {\n loader: 'unity',\n debug: false,\n maxRatio: 16 / 9,\n minRatio: 9 / 16,\n\n title: 'Rocket Soccer',\n\n thumbnail: 'RocketSoccer.jpg',\n numScreenshots: 4,\n\n unityWebglBuildUrl: 'build.json',\n unityWebglLoaderUrl: 'UnityLoader.js',\n\n // **** Optional Settings ****\n fileSize: 27,\n loadingComments: ['Loading...'],\n cachedDecompressedFileSizes: {\n 'RSD 1.1.0rc4.wasm.framework.unityweb':538308,\n 'RSD 1.1.0rc4.wasm.code.unityweb':26620102,\n 'RSD 1.1.0rc4.data.unityweb':29723236,\n },\n //\n };\n </script>\n</head>\n<body>\n<script src=\"master-loader.js\"></script>\n<script defer src=\"https://static.cloudflareinsights.com/beacon.min.js/vaafb692b2aea4879b33c060e79fe94621666317369993\" integrity=\"sha512-0ahDYl866UMhKuYcW078ScMalXqtFJggm7TmlUtp0UlD4eQk0Ixfnm5ykXKvGJNFjLMoortdseTfsRT8oCfgGA==\" data-cf-beacon='{\"rayId\":\"79a9cf98ff8f826e\",\"token\":\"c843b8c381814d58b40d4597a1bf7962\",\"version\":\"2023.2.0\",\"si\":100}' crossorigin=\"anonymous\"></script>\n</body>\n</html>\n"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 352,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:06.147Z",
|
|
"time": 179.82599999982085,
|
|
"timings": {
|
|
"blocked": 44.61099999992111,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 1.8900000000000006,
|
|
"wait": 74.37199999992569,
|
|
"receive": 58.952999999974054,
|
|
"_blocked_queueing": 7.460999999921114
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "parser",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/",
|
|
"lineNumber": 34
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "script",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/master-loader.js",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:39 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "application/javascript"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "minify"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "W/\"62b5ec41-4de\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:54:25 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38144"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=Xm%2FcPvH6tGpfEGcoMJ3JMuBcJsDdn10rBk8z7U6EHdDTRVRKkdLJBiXp4tbVH2d2iLj8wzgH7F4wms2WfJjQQolduLYZrF8MwFaQeVlQ%2FYbW2G8JUIqR62SP80KW7oFWwJpjcvRIQogZJ01S%2F16z1FyJ1B8%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf214954826e-IAD"
|
|
},
|
|
{
|
|
"name": "content-encoding",
|
|
"value": "br"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 1246,
|
|
"mimeType": "application/javascript",
|
|
"text": "\"use strict\";var scripts=document.getElementsByTagName(\"script\"),scriptUrl=scripts[scripts.length-1].src,root=scriptUrl.split(\"master-loader.js\")[0],loaders={unity:\"unity.js\",\"unity-beta\":\"unity-beta.js\",\"unity-2020\":\"unity-2020.js\"};if(0<=window.location.href.indexOf(\"pokiForceLocalLoader\")&&(loaders.unity=\"/unity/dist/unity.js\",loaders[\"unity-beta\"]=\"/unity-beta/dist/unity-beta.js\",loaders[\"unity-2020\"]=\"/unity-2020/dist/unity-2020.js\",root=\"/loaders\"),!window.config)throw Error(\"window.config not found\");var loader=loaders[window.config.loader];if(!loader)throw Error('Loader \"'+window.config.loader+'\" not found');if(!window.config.unityWebglLoaderUrl){var versionSplit=window.config.unityVersion?window.config.unityVersion.split(\".\"):[],year=versionSplit[0],minor=versionSplit[1];switch(year){case\"2019\":window.config.unityWebglLoaderUrl=1===minor?\"UnityLoader.2019.1.js\":\"https://game-cdn.poki.com/loaders/v2/unity/static/UnityLoader.2019.2.js\";break;default:window.config.unityWebglLoaderUrl=\"UnityLoader.js\"}}var sdkScript=document.createElement(\"script\");sdkScript.src=\"poki.js\",sdkScript.onload=function(){var i=document.createElement(\"script\");i.src=root+loader,document.body.appendChild(i)},document.body.appendChild(sdkScript);"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:06.562Z",
|
|
"time": 74.54299999994873,
|
|
"timings": {
|
|
"blocked": 54.39100000003346,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0.5529999999442232,
|
|
"receive": 19.598999999971056,
|
|
"_blocked_queueing": 45.691000000033455
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "parser",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/",
|
|
"lineNumber": 35
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "script",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://static.cloudflareinsights.com/beacon.min.js/vaafb692b2aea4879b33c060e79fe94621666317369993",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "Origin",
|
|
"value": "https://watchdocumentaries.com"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_BLOCKED_BY_CLIENT"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:46:06.564Z",
|
|
"time": 158.23100000011436,
|
|
"timings": {
|
|
"blocked": 158.23100000011436,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "17",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/master-loader.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 1223
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "script",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:39 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "application/javascript"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "minify"
|
|
},
|
|
{
|
|
"name": "cf-polished",
|
|
"value": "origSize=239482"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "W/\"62b5ec41-3a77a\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:54:25 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38144"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=RFgJTVrkn7o6mJQ84ZsFssZ97DOgD8WVYm%2Bh4%2FufJ%2B%2BU8H3dikkmDHiO8COUq75nhh%2FN3XqT7mf36G6sKFziRaPneHoGWCQCz%2BLoiljW8jbE4ABiV4ytHVhZvuIC3DlP4SR4JuVDzcxBOfnM396XJhwITDo%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf243ccb826e-IAD"
|
|
},
|
|
{
|
|
"name": "content-encoding",
|
|
"value": "br"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 147691,
|
|
"mimeType": "application/javascript",
|
|
"text": "!function(t){var n={};function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}\ne.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:i})},e.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&\"object\"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(e.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:t}),2&n&&\"string\"!=typeof t)\nfor(var r in t)e.d(i,r,function(n){return t[n]}.bind(null,r));return i},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p=\"\",e(e.s=109)}([function(t,n,e){(function(n){var e=function(t){return t&&t.Math==Math&&t};t.exports=e(\"object\"==typeof globalThis&&globalThis)||e(\"object\"==typeof window&&window)||e(\"object\"==typeof self&&self)||e(\"object\"==typeof n&&n)||Function(\"return this\")()}).call(this,e(37))},function(t,n,e){var i=e(0),r=e(43),o=e(3),a=e(44),s=e(51),d=e(79),c=r(\"wks\"),u=i.Symbol,l=d?u:u&&u.withoutSetter||a;t.exports=function(t){return o(c,t)||(s&&o(u,t)?c[t]=u[t]:c[t]=l(\"Symbol.\"+t)),c[t]}},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n){var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},function(t,n,e){var i=e(8);t.exports=function(t){if(!i(t))throw TypeError(String(t)+\" is not an object\");return t}},function(t,n,e){var i=e(0),r=e(23).f,o=e(7),a=e(12),s=e(26),d=e(71),c=e(48);t.exports=function(t,n){var e,u,l,A,m,p=t.target,f=t.global,g=t.stat;if(e=f?i:g?i[p]||s(p,{}):(i[p]||{}).prototype)\nfor(u in n){if(A=n[u],l=t.noTargetGet?(m=r(e,u))&&m.value:e[u],!c(f?u:p+(g?\".\":\"#\")+u,t.forced)&&void 0!==l){if(typeof A==typeof l)continue;d(A,l)}(t.sham||l&&l.sham)&&o(A,\"sham\",!0),a(e,u,A,t)}}},function(t,n,e){var i=e(2);t.exports=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(t,n,e){var i=e(6),r=e(9),o=e(19);t.exports=i?function(t,n,e){return r.f(t,n,o(1,e))}:function(t,n,e){return t[n]=e,t}},function(t,n){t.exports=function(t){return \"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,n,e){var i=e(6),r=e(41),o=e(4),a=e(40),s=Object.defineProperty;n.f=i?s:function(t,n,e){if(o(t),n=a(n,!0),o(e),r)try{return s(t,n,e)}catch(t){}\nif(\"get\"in e||\"set\"in e)throw TypeError(\"Accessors not supported\");return \"value\"in e&&(t[n]=e.value),t}},function(t,n,e){var i=e(30),r=e(0),o=function(t){return \"function\"==typeof t?t:void 0};t.exports=function(t,n){return arguments.length<2?o(i[t])||o(r[t]):i[t]&&i[t][n]||r[t]&&r[t][n]}},function(t,n,e){(function(e){var i,r,o;!function(e,a){if(e){var s={},d=e.TraceKit,c=[].slice,u=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;s.noConflict=function(){return e.TraceKit=d,s},s.wrap=function(t){return function(){try{return t.apply(this,arguments)}catch(t){throw s.report(t),t}}},s.report=function(){var t,n,i=[],r=null,o=null;function a(t,n,e){var r=null;if(!n||s.collectWindowErrors){for(var o in i)\nif(l(i,o))try{i[o](t,n,e)}catch(t){r=t}\nif(r)throw r}}\nfunction d(n,e,i,r,d){if(o)s.computeStackTrace.augmentStackTraceWithInitialElement(o,e,i,n),c();else if(d)a(s.computeStackTrace(d),!0,d);else{var l,A={url:e,line:i,column:r},m=n;if(\"[object String]\"==={}.toString.call(n)){var p=n.match(u);p&&(l=p[1],m=p[2])}\nA.func=s.computeStackTrace.guessFunctionName(A.url,A.line),A.context=s.computeStackTrace.gatherContext(A.url,A.line),a({name:l,message:m,mode:\"onerror\",stack:[A]},!0,null)}\nreturn!!t&&t.apply(this,arguments)}\nfunction c(){var t=o,n=r;o=null,r=null,a(t,!1,n)}\nfunction A(t){if(o){if(r===t)return;c()}\nvar n=s.computeStackTrace(t);throw o=n,r=t,setTimeout((function(){r===t&&c()}),n.incomplete?2e3:0),t}\nreturn A.subscribe=function(r){!function(){if(!0===n)return;t=e.onerror,e.onerror=d,n=!0}(),i.push(r)},A.unsubscribe=function(r){for(var o=i.length-1;o>=0;--o)i[o]===r&&i.splice(o,1);0===i.length&&(e.onerror=t,n=!1)},A}(),s.computeStackTrace=function(){var t={};function n(n){if(\"string\"!=typeof n)return[];if(!l(t,n)){var i=\"\",r=\"\";try{r=e.document.domain}catch(t){}\nvar o=/(.*)\\:\\/\\/([^:\\/]+)([:\\d]*)\\/{0,1}([\\s\\S]*)/.exec(n);o&&o[2]===r&&(i=function(t){if(!s.remoteFetching)return \"\";try{var n=function(){try{return new e.XMLHttpRequest}catch(t){return new e.ActiveXObject(\"Microsoft.XMLHTTP\")}}();return n.open(\"GET\",t,!1),n.send(\"\"),n.responseText}catch(t){return \"\"}}(n)),t[n]=i?i.split(\"\\n\"):[]}\nreturn t[n]}\nfunction i(t,e){var i,r=/function ([^(]*)\\(([^)]*)\\)/,o=/['\"]?([0-9A-Za-z$_]+)['\"]?\\s*[:=]\\s*(function|eval|new Function)/,a=\"\",s=n(t);if(!s.length)return \"?\";for(var d=0;d<10;++d)\nif(!A(a=s[e-d]+a)){if(i=o.exec(a))return i[1];if(i=r.exec(a))return i[1]}return \"?\"}\nfunction r(t,e){var i=n(t);if(!i.length)return null;var r=[],o=Math.floor(s.linesOfContext/2),a=o+s.linesOfContext%2,d=Math.max(0,e-o-1),c=Math.min(i.length,e+a-1);e-=1;for(var u=d;u<c;++u)A(i[u])||r.push(i[u]);return r.length>0?r:null}\nfunction o(t){return t.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#]/g,\"\\\\$&\")}\nfunction a(t){return o(t).replace(\"<\",\"(?:<|<)\").replace(\">\",\"(?:>|>)\").replace(\"&\",\"(?:&|&)\").replace('\"','(?:\"|")').replace(/\\s+/g,\"\\\\s+\")}\nfunction d(t,e){for(var i,r,o=0,a=e.length;o<a;++o)\nif((i=n(e[o])).length&&(i=i.join(\"\\n\"),r=t.exec(i)))return{url:e[o],line:i.substring(0,r.index).split(\"\\n\").length,column:r.index-i.lastIndexOf(\"\\n\",r.index)-1};return null}\nfunction c(t,e,i){var r,a=n(e),s=new RegExp(\"\\\\b\"+o(t)+\"\\\\b\");return i-=1,a&&a.length>i&&(r=s.exec(a[i]))?r.index:null}\nfunction u(t){if(!A(e&&e.document)){for(var n,i,r,s,c=[e.location.href],u=e.document.getElementsByTagName(\"script\"),l=\"\"+t,m=0;m<u.length;++m){var p=u[m];p.src&&c.push(p.src)}\nif(r=/^function(?:\\s+([\\w$]+))?\\s*\\(([\\w\\s,]*)\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/.exec(l)){var f=r[1]?\"\\\\s+\"+r[1]:\"\",g=r[2].split(\",\").join(\"\\\\s*,\\\\s*\");n=o(r[3]).replace(/;$/,\";?\"),i=new RegExp(\"function\"+f+\"\\\\s*\\\\(\\\\s*\"+g+\"\\\\s*\\\\)\\\\s*{\\\\s*\"+n+\"\\\\s*}\")}else i=new RegExp(o(l).replace(/\\s+/g,\"\\\\s+\"));if(s=d(i,c))return s;if(r=/^function on([\\w$]+)\\s*\\(event\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/.exec(l)){var h=r[1];if(n=a(r[2]),s=d(i=new RegExp(\"on\"+h+\"=[\\\\'\\\"]\\\\s*\"+n+\"\\\\s*[\\\\'\\\"]\",\"i\"),c[0]))return s;if(s=d(i=new RegExp(n),c))return s}\nreturn null}}\nfunction m(t){if(!t.stack)return null;for(var n,e,o,a=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,s=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,d=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,u=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,l=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,m=t.stack.split(\"\\n\"),p=[],f=/^(.*) is undefined$/.exec(t.message),g=0,h=m.length;g<h;++g){if(e=a.exec(m[g])){var w=e[2]&&0===e[2].indexOf(\"native\");e[2]&&0===e[2].indexOf(\"eval\")&&(n=l.exec(e[2]))&&(e[2]=n[1],e[3]=n[2],e[4]=n[3]),o={url:w?null:e[2],func:e[1]||\"?\",args:w?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}else if(e=d.exec(m[g]))o={url:e[2],func:e[1]||\"?\",args:[],line:+e[3],column:e[4]?+e[4]:null};else{if(!(e=s.exec(m[g])))continue;e[3]&&e[3].indexOf(\" > eval\")>-1&&(n=u.exec(e[3]))?(e[3]=n[1],e[4]=n[2],e[5]=null):0!==g||e[5]||A(t.columnNumber)||(p[0].column=t.columnNumber+1),o={url:e[3],func:e[1]||\"?\",args:e[2]?e[2].split(\",\"):[],line:e[4]?+e[4]:null,column:e[5]?+e[5]:null}}!o.func&&o.line&&(o.func=i(o.url,o.line)),o.context=o.line?r(o.url,o.line):null,p.push(o)}\nreturn p.length?(p[0]&&p[0].line&&!p[0].column&&f&&(p[0].column=c(f[1],p[0].url,p[0].line)),{mode:\"stack\",name:t.name,message:t.message,stack:p}):null}\nfunction p(t,n,e,o){var a={url:n,line:e};if(a.url&&a.line){t.incomplete=!1,a.func||(a.func=i(a.url,a.line)),a.context||(a.context=r(a.url,a.line));var s=/ '([^']+)' /.exec(o);if(s&&(a.column=c(s[1],a.url,a.line)),t.stack.length>0&&t.stack[0].url===a.url){if(t.stack[0].line===a.line)return!1;if(!t.stack[0].line&&t.stack[0].func===a.func)return t.stack[0].line=a.line,t.stack[0].context=a.context,!1}\nreturn t.stack.unshift(a),t.partial=!0,!0}\nreturn t.incomplete=!0,!1}\nfunction f(t,n){for(var e,r,o,a=/function\\s+([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*)?\\s*\\(/i,d=[],l={},A=!1,m=f.caller;m&&!A;m=m.caller)\nif(m!==g&&m!==s.report){if(r={url:null,func:\"?\",args:[],line:null,column:null},m.name?r.func=m.name:(e=a.exec(m.toString()))&&(r.func=e[1]),void 0===r.func)try{r.func=e.input.substring(0,e.input.indexOf(\"{\"))}catch(t){}\nif(o=u(m)){r.url=o.url,r.line=o.line,\"?\"===r.func&&(r.func=i(r.url,r.line));var h=/ '([^']+)' /.exec(t.message||t.description);h&&(r.column=c(h[1],o.url,o.line))}\nl[\"\"+m]?A=!0:l[\"\"+m]=!0,d.push(r)}n&&d.splice(0,n);var w={mode:\"callers\",name:t.name,message:t.message,stack:d};return p(w,t.sourceURL||t.fileName,t.line||t.lineNumber,t.message||t.description),w}\nfunction g(t,o){var s=null;o=null==o?0:+o;try{if(s=function(t){var n=t.stacktrace;if(n){for(var e,o=/ line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i,a=/ line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^\\)]+))\\((.*)\\))? in (.*):\\s*$/i,s=n.split(\"\\n\"),d=[],c=0;c<s.length;c+=2){var u=null;if((e=o.exec(s[c]))?u={url:e[2],line:+e[1],column:null,func:e[3],args:[]}:(e=a.exec(s[c]))&&(u={url:e[6],line:+e[1],column:+e[2],func:e[3]||e[4],args:e[5]?e[5].split(\",\"):[]}),u){if(!u.func&&u.line&&(u.func=i(u.url,u.line)),u.line)try{u.context=r(u.url,u.line)}catch(t){}\nu.context||(u.context=[s[c+1]]),d.push(u)}}\nreturn d.length?{mode:\"stacktrace\",name:t.name,message:t.message,stack:d}:null}}(t))return s}catch(t){0}\ntry{if(s=m(t))return s}catch(t){0}\ntry{if(s=function(t){var o=t.message.split(\"\\n\");if(o.length<4)return null;var s,c=/^\\s*Line (\\d+) of linked script ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i,u=/^\\s*Line (\\d+) of inline#(\\d+) script in ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i,A=/^\\s*Line (\\d+) of function script\\s*$/i,m=[],p=e&&e.document&&e.document.getElementsByTagName(\"script\"),f=[];for(var g in p)l(p,g)&&!p[g].src&&f.push(p[g]);for(var h=2;h<o.length;h+=2){var w=null;if(s=c.exec(o[h]))w={url:s[2],func:s[3],args:[],line:+s[1],column:null};else if(s=u.exec(o[h])){w={url:s[3],func:s[4],args:[],line:+s[1],column:null};var y=+s[1],k=f[s[2]-1];if(k){var v=n(w.url);if(v){var b=(v=v.join(\"\\n\")).indexOf(k.innerText);b>=0&&(w.line=y+v.substring(0,b).split(\"\\n\").length)}}}else if(s=A.exec(o[h])){var S=e.location.href.replace(/#.*$/,\"\"),E=d(new RegExp(a(o[h+1])),[S]);w={url:S,func:\"\",args:[],line:E?E.line:s[1],column:null}}\nif(w){w.func||(w.func=i(w.url,w.line));var x=r(w.url,w.line),T=x?x[Math.floor(x.length/2)]:null;x&&T.replace(/^\\s*/,\"\")===o[h+1].replace(/^\\s*/,\"\")?w.context=x:w.context=[o[h+1]],m.push(w)}}\nreturn m.length?{mode:\"multiline\",name:t.name,message:o[0],stack:m}:null}(t))return s}catch(t){0}\ntry{if(s=f(t,o+1))return s}catch(t){0}\nreturn{name:t.name,message:t.message,mode:\"failed\"}}\nreturn g.augmentStackTraceWithInitialElement=p,g.computeStackTraceFromStackProp=m,g.guessFunctionName=i,g.gatherContext=r,g.ofCaller=function(t){t=1+(null==t?0:+t);try{throw new Error}catch(n){return g(n,t+1)}},g.getSource=n,g}(),s.extendToAsynchronousCallbacks=function(){var t=function(t){var n=e[t];e[t]=function(){var t=c.call(arguments),e=t[0];return \"function\"==typeof e&&(t[0]=s.wrap(e)),n.apply?n.apply(this,t):n(t[0],t[1])}};t(\"setTimeout\"),t(\"setInterval\")},s.remoteFetching||(s.remoteFetching=!0),s.collectWindowErrors||(s.collectWindowErrors=!0),(!s.linesOfContext||s.linesOfContext<1)&&(s.linesOfContext=11),r=[],void 0===(o=\"function\"==typeof(i=s)?i.apply(n,r):i)||(t.exports=o)}\nfunction l(t,n){return Object.prototype.hasOwnProperty.call(t,n)}\nfunction A(t){return void 0===t}}(\"undefined\"!=typeof window?window:e)}).call(this,e(37))},function(t,n,e){var i=e(0),r=e(7),o=e(3),a=e(26),s=e(27),d=e(15),c=d.get,u=d.enforce,l=String(String).split(\"String\");(t.exports=function(t,n,e,s){var d=!!s&&!!s.unsafe,c=!!s&&!!s.enumerable,A=!!s&&!!s.noTargetGet;\"function\"==typeof e&&(\"string\"!=typeof n||o(e,\"name\")||r(e,\"name\",n),u(e).source=l.join(\"string\"==typeof n?n:\"\")),t!==i?(d?!A&&t[n]&&(c=!0):delete t[n],c?t[n]=e:r(t,n,e)):c?t[n]=e:a(n,e)})(Function.prototype,\"toString\",(function(){return \"function\"==typeof this&&c(this).source||s(this)}))},function(t,n){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},function(t,n){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},function(t,n,e){var i,r,o,a=e(70),s=e(0),d=e(8),c=e(7),u=e(3),l=e(28),A=e(29),m=s.WeakMap;if(a){var p=new m,f=p.get,g=p.has,h=p.set;i=function(t,n){return h.call(p,t,n),n},r=function(t){return f.call(p,t)||{}},o=function(t){return g.call(p,t)}}else{var w=l(\"state\");A[w]=!0,i=function(t,n){return c(t,w,n),n},r=function(t){return u(t,w)?t[w]:{}},o=function(t){return u(t,w)}}\nt.exports={set:i,get:r,has:o,enforce:function(t){return o(t)?r(t):i(t,{})},getterFor:function(t){return function(n){var e;if(!d(n)||(e=r(n)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return e}}}},function(t,n){t.exports=!1},function(t,n){t.exports={}},function(t,n,e){\"use strict\";var i=e(13),r=function(t){var n,e;this.promise=new t((function(t,i){if(void 0!==n||void 0!==e)throw TypeError(\"Bad Promise constructor\");n=t,e=i})),this.resolve=i(n),this.reject=i(e)};t.exports.f=function(t){return new r(t)}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n,e){var i=e(39),r=e(24);t.exports=function(t){return i(r(t))}},function(t,n,e){var i=e(4),r=e(95),o=e(46),a=e(58),s=e(96),d=e(97),c=function(t,n){this.stopped=t,this.result=n};(t.exports=function(t,n,e,u,l){var A,m,p,f,g,h,w,y=a(n,e,u?2:1);if(l)A=t;else{if(\"function\"!=typeof(m=s(t)))throw TypeError(\"Target is not iterable\");if(r(m)){for(p=0,f=o(t.length);f>p;p++)\nif((g=u?y(i(w=t[p])[0],w[1]):y(t[p]))&&g instanceof c)return g;return new c(!1)}\nA=m.call(t)}\nfor(h=A.next;!(w=h.call(A)).done;)\nif(\"object\"==typeof(g=d(A,y,w.value,u))&&g&&g instanceof c)return g;return new c(!1)}).stop=function(t){return new c(!0,t)}},function(t,n){t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},function(t,n,e){var i=e(6),r=e(38),o=e(19),a=e(20),s=e(40),d=e(3),c=e(41),u=Object.getOwnPropertyDescriptor;n.f=i?u:function(t,n){if(t=a(t),n=s(n,!0),c)try{return u(t,n)}catch(t){}\nif(d(t,n))return o(!r.f.call(t,n),t[n])}},function(t,n){t.exports=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,n,e){var i=e(0),r=e(8),o=i.document,a=r(o)&&r(o.createElement);t.exports=function(t){return a?o.createElement(t):{}}},function(t,n,e){var i=e(0),r=e(7);t.exports=function(t,n){try{r(i,t,n)}catch(e){i[t]=n}\nreturn n}},function(t,n,e){var i=e(42),r=Function.toString;\"function\"!=typeof i.inspectSource&&(i.inspectSource=function(t){return r.call(t)}),t.exports=i.inspectSource},function(t,n,e){var i=e(43),r=e(44),o=i(\"keys\");t.exports=function(t){return o[t]||(o[t]=r(t))}},function(t,n){t.exports={}},function(t,n,e){var i=e(0);t.exports=i},function(t,n){var e=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:e)(t)}},function(t,n){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},function(t,n,e){var i={};i[e(1)(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(i)},function(t,n,e){var i=e(3),r=e(50),o=e(28),a=e(84),s=o(\"IE_PROTO\"),d=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=r(t),i(t,s)?t[s]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?d:null}},function(t,n,e){var i,r=e(4),o=e(85),a=e(32),s=e(29),d=e(55),c=e(25),u=e(28),l=u(\"IE_PROTO\"),A=function(){},m=function(t){return \"<script>\"+t+\"<\\/script>\"},p=function(){try{i=document.domain&&new ActiveXObject(\"htmlfile\")}catch(t){}\nvar t,n;p=i?function(t){t.write(m(\"\")),t.close();var n=t.parentWindow.Object;return t=null,n}(i):((n=c(\"iframe\")).style.display=\"none\",d.appendChild(n),n.src=String(\"javascript:\"),(t=n.contentWindow.document).open(),t.write(m(\"document.F=Object\")),t.close(),t.F);for(var e=a.length;e--;)delete p.prototype[a[e]];return p()};s[l]=!0,t.exports=Object.create||function(t,n){var e;return null!==t?(A.prototype=r(t),e=new A,A.prototype=null,e[l]=t):e=p(),void 0===n?e:o(e,n)}},function(t,n,e){var i=e(9).f,r=e(3),o=e(1)(\"toStringTag\");t.exports=function(t,n,e){t&&!r(t=e?t:t.prototype,o)&&i(t,o,{configurable:!0,value:n})}},function(t,n){var e;e=function(){return this}();try{e=e||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(e=window)}\nt.exports=e},function(t,n,e){\"use strict\";var i={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!i.call({1:2},1);n.f=o?function(t){var n=r(this,t);return!!n&&n.enumerable}:i},function(t,n,e){var i=e(2),r=e(14),o=\"\".split;t.exports=i((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return \"String\"==r(t)?o.call(t,\"\"):Object(t)}:Object},function(t,n,e){var i=e(8);t.exports=function(t,n){if(!i(t))return t;var e,r;if(n&&\"function\"==typeof(e=t.toString)&&!i(r=e.call(t)))return r;if(\"function\"==typeof(e=t.valueOf)&&!i(r=e.call(t)))return r;if(!n&&\"function\"==typeof(e=t.toString)&&!i(r=e.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")}},function(t,n,e){var i=e(6),r=e(2),o=e(25);t.exports=!i&&!r((function(){return 7!=Object.defineProperty(o(\"div\"),\"a\",{get:function(){return 7}}).a}))},function(t,n,e){var i=e(0),r=e(26),o=i[\"__core-js_shared__\"]||r(\"__core-js_shared__\",{});t.exports=o},function(t,n,e){var i=e(16),r=e(42);(t.exports=function(t,n){return r[t]||(r[t]=void 0!==n?n:{})})(\"versions\",[]).push({version:\"3.6.4\",mode:i?\"pure\":\"global\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})},function(t,n){var e=0,i=Math.random();t.exports=function(t){return \"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++e+i).toString(36)}},function(t,n,e){var i=e(3),r=e(20),o=e(74).indexOf,a=e(29);t.exports=function(t,n){var e,s=r(t),d=0,c=[];for(e in s)!i(a,e)&&i(s,e)&&c.push(e);for(;n.length>d;)i(s,e=n[d++])&&(~o(c,e)||c.push(e));return c}},function(t,n,e){var i=e(31),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,n){n.f=Object.getOwnPropertySymbols},function(t,n,e){var i=e(2),r=/#|\\.prototype\\./,o=function(t,n){var e=s[a(t)];return e==c||e!=d&&(\"function\"==typeof n?i(n):!!n)},a=o.normalize=function(t){return String(t).replace(r,\".\").toLowerCase()},s=o.data={},d=o.NATIVE=\"N\",c=o.POLYFILL=\"P\";t.exports=o},function(t,n,e){var i=e(45),r=e(32);t.exports=Object.keys||function(t){return i(t,r)}},function(t,n,e){var i=e(24);t.exports=function(t){return Object(i(t))}},function(t,n,e){var i=e(2);t.exports=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())}))},function(t,n,e){var i=e(33),r=e(14),o=e(1)(\"toStringTag\"),a=\"Arguments\"==r(function(){return arguments}());t.exports=i?r:function(t){var n,e,i;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(e=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),o))?e:a?r(n):\"Object\"==(i=r(n))&&\"function\"==typeof n.callee?\"Arguments\":i}},function(t,n,e){\"use strict\";var i=e(5),r=e(83),o=e(34),a=e(56),s=e(36),d=e(7),c=e(12),u=e(1),l=e(16),A=e(17),m=e(54),p=m.IteratorPrototype,f=m.BUGGY_SAFARI_ITERATORS,g=u(\"iterator\"),h=function(){return this};t.exports=function(t,n,e,u,m,w,y){r(e,n,u);var k,v,b,S=function(t){if(t===m&&C)return C;if(!f&&t in T)return T[t];switch(t){case \"keys\":case \"values\":case \"entries\":return function(){return new e(this,t)}}\nreturn function(){return new e(this)}},E=n+\" Iterator\",x=!1,T=t.prototype,z=T[g]||T[\"@@iterator\"]||m&&T[m],C=!f&&z||S(m),B=\"Array\"==n&&T.entries||z;if(B&&(k=o(B.call(new t)),p!==Object.prototype&&k.next&&(l||o(k)===p||(a?a(k,p):\"function\"!=typeof k[g]&&d(k,g,h)),s(k,E,!0,!0),l&&(A[E]=h))),\"values\"==m&&z&&\"values\"!==z.name&&(x=!0,C=function(){return z.call(this)}),l&&!y||T[g]===C||d(T,g,C),A[n]=C,m)\nif(v={values:S(\"values\"),keys:w?C:S(\"keys\"),entries:S(\"entries\")},y)\nfor(b in v)!f&&!x&&b in T||c(T,b,v[b]);else i({target:n,proto:!0,forced:f||x},v);return v}},function(t,n,e){\"use strict\";var i,r,o,a=e(34),s=e(7),d=e(3),c=e(1),u=e(16),l=c(\"iterator\"),A=!1;[].keys&&(\"next\"in(o=[].keys())?(r=a(a(o)))!==Object.prototype&&(i=r):A=!0),null==i&&(i={}),u||d(i,l)||s(i,l,(function(){return this})),t.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:A}},function(t,n,e){var i=e(10);t.exports=i(\"document\",\"documentElement\")},function(t,n,e){var i=e(4),r=e(86);t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,n=!1,e={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(e,[]),n=e instanceof Array}catch(t){}\nreturn function(e,o){return i(e),r(o),n?t.call(e,o):e.__proto__=o,e}}():void 0)},function(t,n,e){var i=e(0);t.exports=i.Promise},function(t,n,e){var i=e(13);t.exports=function(t,n,e){if(i(t),void 0===n)return t;switch(e){case 0:return function(){return t.call(n)};case 1:return function(e){return t.call(n,e)};case 2:return function(e,i){return t.call(n,e,i)};case 3:return function(e,i,r){return t.call(n,e,i,r)}}\nreturn function(){return t.apply(n,arguments)}}},function(t,n,e){var i=e(4),r=e(13),o=e(1)(\"species\");t.exports=function(t,n){var e,a=i(t).constructor;return void 0===a||null==(e=i(a)[o])?n:r(e)}},function(t,n,e){var i,r,o,a=e(0),s=e(2),d=e(14),c=e(58),u=e(55),l=e(25),A=e(61),m=a.location,p=a.setImmediate,f=a.clearImmediate,g=a.process,h=a.MessageChannel,w=a.Dispatch,y=0,k={},v=function(t){if(k.hasOwnProperty(t)){var n=k[t];delete k[t],n()}},b=function(t){return function(){v(t)}},S=function(t){v(t.data)},E=function(t){a.postMessage(t+\"\",m.protocol+\"//\"+m.host)};p&&f||(p=function(t){for(var n=[],e=1;arguments.length>e;)n.push(arguments[e++]);return k[++y]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,n)},i(y),y},f=function(t){delete k[t]},\"process\"==d(g)?i=function(t){g.nextTick(b(t))}:w&&w.now?i=function(t){w.now(b(t))}:h&&!A?(o=(r=new h).port2,r.port1.onmessage=S,i=c(o.postMessage,o,1)):!a.addEventListener||\"function\"!=typeof postMessage||a.importScripts||s(E)?i=\"onreadystatechange\"in l(\"script\")?function(t){u.appendChild(l(\"script\")).onreadystatechange=function(){u.removeChild(this),v(t)}}:function(t){setTimeout(b(t),0)}:(i=E,a.addEventListener(\"message\",S,!1))),t.exports={set:p,clear:f}},function(t,n,e){var i=e(62);t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(i)},function(t,n,e){var i=e(10);t.exports=i(\"navigator\",\"userAgent\")||\"\"},function(t,n,e){var i=e(4),r=e(8),o=e(18);t.exports=function(t,n){if(i(t),r(n)&&n.constructor===t)return n;var e=o.f(t);return(0,e.resolve)(n),e.promise}},function(t,n,e){\"use strict\";var i=e(5),r=e(13),o=e(18),a=e(22),s=e(21);i({target:\"Promise\",stat:!0},{allSettled:function(t){var n=this,e=o.f(n),i=e.resolve,d=e.reject,c=a((function(){var e=r(n.resolve),o=[],a=0,d=1;s(t,(function(t){var r=a++,s=!1;o.push(void 0),d++,e.call(n,t).then((function(t){s||(s=!0,o[r]={status:\"fulfilled\",value:t},--d||i(o))}),(function(t){s||(s=!0,o[r]={status:\"rejected\",reason:t},--d||i(o))}))})),--d||i(o)}));return c.error&&d(c.value),e.promise}})},function(t,n,e){var i=e(68);t.exports=i},function(t,n,e){var i=e(77);e(103),e(104),e(105),e(106),t.exports=i},function(t){t.exports=JSON.parse('{\"a\":\"https://game-cdn.poki.comsa/scripts/prebid/2.44.4-0.js\"}')},function(t,n,e){e(69);var i=e(30);t.exports=i.Object.assign},function(t,n,e){var i=e(5),r=e(76);i({target:\"Object\",stat:!0,forced:Object.assign!==r},{assign:r})},function(t,n,e){var i=e(0),r=e(27),o=i.WeakMap;t.exports=\"function\"==typeof o&&/native code/.test(r(o))},function(t,n,e){var i=e(3),r=e(72),o=e(23),a=e(9);t.exports=function(t,n){for(var e=r(n),s=a.f,d=o.f,c=0;c<e.length;c++){var u=e[c];i(t,u)||s(t,u,d(n,u))}}},function(t,n,e){var i=e(10),r=e(73),o=e(47),a=e(4);t.exports=i(\"Reflect\",\"ownKeys\")||function(t){var n=r.f(a(t)),e=o.f;return e?n.concat(e(t)):n}},function(t,n,e){var i=e(45),r=e(32).concat(\"length\",\"prototype\");n.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,n,e){var i=e(20),r=e(46),o=e(75),a=function(t){return function(n,e,a){var s,d=i(n),c=r(d.length),u=o(a,c);if(t&&e!=e){for(;c>u;)\nif((s=d[u++])!=s)return!0}else\nfor(;c>u;u++)\nif((t||u in d)&&d[u]===e)return t||u||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},function(t,n,e){var i=e(31),r=Math.max,o=Math.min;t.exports=function(t,n){var e=i(t);return e<0?r(e+n,0):o(e,n)}},function(t,n,e){\"use strict\";var i=e(6),r=e(2),o=e(49),a=e(47),s=e(38),d=e(50),c=e(39),u=Object.assign,l=Object.defineProperty;t.exports=!u||r((function(){if(i&&1!==u({b:1},u(l({},\"a\",{enumerable:!0,get:function(){l(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},n={},e=Symbol();return t[e]=7,\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){n[t]=t})),7!=u({},t)[e]||\"abcdefghijklmnopqrst\"!=o(u({},n)).join(\"\")}))?function(t,n){for(var e=d(t),r=arguments.length,u=1,l=a.f,A=s.f;r>u;)\nfor(var m,p=c(arguments[u++]),f=l?o(p).concat(l(p)):o(p),g=f.length,h=0;g>h;)m=f[h++],i&&!A.call(p,m)||(e[m]=p[m]);return e}:u},function(t,n,e){e(78),e(81),e(87),e(91),e(64),e(102);var i=e(30);t.exports=i.Promise},function(t,n,e){var i=e(33),r=e(12),o=e(80);i||r(Object.prototype,\"toString\",o,{unsafe:!0})},function(t,n,e){var i=e(51);t.exports=i&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},function(t,n,e){\"use strict\";var i=e(33),r=e(52);t.exports=i?{}.toString:function(){return \"[object \"+r(this)+\"]\"}},function(t,n,e){\"use strict\";var i=e(82).charAt,r=e(15),o=e(53),a=r.set,s=r.getterFor(\"String Iterator\");o(String,\"String\",(function(t){a(this,{type:\"String Iterator\",string:String(t),index:0})}),(function(){var t,n=s(this),e=n.string,r=n.index;return r>=e.length?{value:void 0,done:!0}:(t=i(e,r),n.index+=t.length,{value:t,done:!1})}))},function(t,n,e){var i=e(31),r=e(24),o=function(t){return function(n,e){var o,a,s=String(r(n)),d=i(e),c=s.length;return d<0||d>=c?t?\"\":void 0:(o=s.charCodeAt(d))<55296||o>56319||d+1===c||(a=s.charCodeAt(d+1))<56320||a>57343?t?s.charAt(d):o:t?s.slice(d,d+2):a-56320+(o-55296<<10)+65536}};t.exports={codeAt:o(!1),charAt:o(!0)}},function(t,n,e){\"use strict\";var i=e(54).IteratorPrototype,r=e(35),o=e(19),a=e(36),s=e(17),d=function(){return this};t.exports=function(t,n,e){var c=n+\" Iterator\";return t.prototype=r(i,{next:o(1,e)}),a(t,c,!1,!0),s[c]=d,t}},function(t,n,e){var i=e(2);t.exports=!i((function(){function t(){}\nreturn t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},function(t,n,e){var i=e(6),r=e(9),o=e(4),a=e(49);t.exports=i?Object.defineProperties:function(t,n){o(t);for(var e,i=a(n),s=i.length,d=0;s>d;)r.f(t,e=i[d++],n[e]);return t}},function(t,n,e){var i=e(8);t.exports=function(t){if(!i(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},function(t,n,e){var i=e(0),r=e(88),o=e(89),a=e(7),s=e(1),d=s(\"iterator\"),c=s(\"toStringTag\"),u=o.values;for(var l in r){var A=i[l],m=A&&A.prototype;if(m){if(m[d]!==u)try{a(m,d,u)}catch(t){m[d]=u}\nif(m[c]||a(m,c,l),r[l])\nfor(var p in o)\nif(m[p]!==o[p])try{a(m,p,o[p])}catch(t){m[p]=o[p]}}}},function(t,n){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(t,n,e){\"use strict\";var i=e(20),r=e(90),o=e(17),a=e(15),s=e(53),d=a.set,c=a.getterFor(\"Array Iterator\");t.exports=s(Array,\"Array\",(function(t,n){d(this,{type:\"Array Iterator\",target:i(t),index:0,kind:n})}),(function(){var t=c(this),n=t.target,e=t.kind,i=t.index++;return!n||i>=n.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==e?{value:i,done:!1}:\"values\"==e?{value:n[i],done:!1}:{value:[i,n[i]],done:!1}}),\"values\"),o.Arguments=o.Array,r(\"keys\"),r(\"values\"),r(\"entries\")},function(t,n,e){var i=e(1),r=e(35),o=e(9),a=i(\"unscopables\"),s=Array.prototype;null==s[a]&&o.f(s,a,{configurable:!0,value:r(null)}),t.exports=function(t){s[a][t]=!0}},function(t,n,e){\"use strict\";var i,r,o,a,s=e(5),d=e(16),c=e(0),u=e(10),l=e(57),A=e(12),m=e(92),p=e(36),f=e(93),g=e(8),h=e(13),w=e(94),y=e(14),k=e(27),v=e(21),b=e(98),S=e(59),E=e(60).set,x=e(99),T=e(63),z=e(100),C=e(18),B=e(22),I=e(15),_=e(48),P=e(1),D=e(101),L=P(\"species\"),O=\"Promise\",j=I.get,M=I.set,R=I.getterFor(O),Z=l,G=c.TypeError,F=c.document,H=c.process,N=u(\"fetch\"),X=C.f,Q=X,U=\"process\"==y(H),W=!!(F&&F.createEvent&&c.dispatchEvent),V=_(O,(function(){if(!(k(Z)!==String(Z))){if(66===D)return!0;if(!U&&\"function\"!=typeof PromiseRejectionEvent)return!0}\nif(d&&!Z.prototype.finally)return!0;if(D>=51&&/native code/.test(Z))return!1;var t=Z.resolve(1),n=function(t){t((function(){}),(function(){}))};return(t.constructor={})[L]=n,!(t.then((function(){}))instanceof n)})),q=V||!b((function(t){Z.all(t).catch((function(){}))})),K=function(t){var n;return!(!g(t)||\"function\"!=typeof(n=t.then))&&n},J=function(t,n,e){if(!n.notified){n.notified=!0;var i=n.reactions;x((function(){for(var r=n.value,o=1==n.state,a=0;i.length>a;){var s,d,c,u=i[a++],l=o?u.ok:u.fail,A=u.resolve,m=u.reject,p=u.domain;try{l?(o||(2===n.rejection&&nt(t,n),n.rejection=1),!0===l?s=r:(p&&p.enter(),s=l(r),p&&(p.exit(),c=!0)),s===u.promise?m(G(\"Promise-chain cycle\")):(d=K(s))?d.call(s,A,m):A(s)):m(r)}catch(t){p&&!c&&p.exit(),m(t)}}\nn.reactions=[],n.notified=!1,e&&!n.rejection&&$(t,n)}))}},Y=function(t,n,e){var i,r;W?((i=F.createEvent(\"Event\")).promise=n,i.reason=e,i.initEvent(t,!1,!0),c.dispatchEvent(i)):i={promise:n,reason:e},(r=c[\"on\"+t])?r(i):\"unhandledrejection\"===t&&z(\"Unhandled promise rejection\",e)},$=function(t,n){E.call(c,(function(){var e,i=n.value;if(tt(n)&&(e=B((function(){U?H.emit(\"unhandledRejection\",i,t):Y(\"unhandledrejection\",t,i)})),n.rejection=U||tt(n)?2:1,e.error))throw e.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},nt=function(t,n){E.call(c,(function(){U?H.emit(\"rejectionHandled\",t):Y(\"rejectionhandled\",t,n.value)}))},et=function(t,n,e,i){return function(r){t(n,e,r,i)}},it=function(t,n,e,i){n.done||(n.done=!0,i&&(n=i),n.value=e,n.state=2,J(t,n,!0))},rt=function(t,n,e,i){if(!n.done){n.done=!0,i&&(n=i);try{if(t===e)throw G(\"Promise can't be resolved itself\");var r=K(e);r?x((function(){var i={done:!1};try{r.call(e,et(rt,t,i,n),et(it,t,i,n))}catch(e){it(t,i,e,n)}})):(n.value=e,n.state=1,J(t,n,!1))}catch(e){it(t,{done:!1},e,n)}}};V&&(Z=function(t){w(this,Z,O),h(t),i.call(this);var n=j(this);try{t(et(rt,this,n),et(it,this,n))}catch(t){it(this,n,t)}},(i=function(t){M(this,{type:O,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=m(Z.prototype,{then:function(t,n){var e=R(this),i=X(S(this,Z));return i.ok=\"function\"!=typeof t||t,i.fail=\"function\"==typeof n&&n,i.domain=U?H.domain:void 0,e.parent=!0,e.reactions.push(i),0!=e.state&&J(this,e,!1),i.promise},catch:function(t){return this.then(void 0,t)}}),r=function(){var t=new i,n=j(t);this.promise=t,this.resolve=et(rt,t,n),this.reject=et(it,t,n)},C.f=X=function(t){return t===Z||t===o?new r(t):Q(t)},d||\"function\"!=typeof l||(a=l.prototype.then,A(l.prototype,\"then\",(function(t,n){var e=this;return new Z((function(t,n){a.call(e,t,n)})).then(t,n)}),{unsafe:!0}),\"function\"==typeof N&&s({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return T(Z,N.apply(c,arguments))}}))),s({global:!0,wrap:!0,forced:V},{Promise:Z}),p(Z,O,!1,!0),f(O),o=u(O),s({target:O,stat:!0,forced:V},{reject:function(t){var n=X(this);return n.reject.call(void 0,t),n.promise}}),s({target:O,stat:!0,forced:d||V},{resolve:function(t){return T(d&&this===o?Z:this,t)}}),s({target:O,stat:!0,forced:q},{all:function(t){var n=this,e=X(n),i=e.resolve,r=e.reject,o=B((function(){var e=h(n.resolve),o=[],a=0,s=1;v(t,(function(t){var d=a++,c=!1;o.push(void 0),s++,e.call(n,t).then((function(t){c||(c=!0,o[d]=t,--s||i(o))}),r)})),--s||i(o)}));return o.error&&r(o.value),e.promise},race:function(t){var n=this,e=X(n),i=e.reject,r=B((function(){var r=h(n.resolve);v(t,(function(t){r.call(n,t).then(e.resolve,i)}))}));return r.error&&i(r.value),e.promise}})},function(t,n,e){var i=e(12);t.exports=function(t,n,e){for(var r in n)i(t,r,n[r],e);return t}},function(t,n,e){\"use strict\";var i=e(10),r=e(9),o=e(1),a=e(6),s=o(\"species\");t.exports=function(t){var n=i(t),e=r.f;a&&n&&!n[s]&&e(n,s,{configurable:!0,get:function(){return this}})}},function(t,n){t.exports=function(t,n,e){if(!(t instanceof n))throw TypeError(\"Incorrect \"+(e?e+\" \":\"\")+\"invocation\");return t}},function(t,n,e){var i=e(1),r=e(17),o=i(\"iterator\"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||a[o]===t)}},function(t,n,e){var i=e(52),r=e(17),o=e(1)(\"iterator\");t.exports=function(t){if(null!=t)return t[o]||t[\"@@iterator\"]||r[i(t)]}},function(t,n,e){var i=e(4);t.exports=function(t,n,e,r){try{return r?n(i(e)[0],e[1]):n(e)}catch(n){var o=t.return;throw void 0!==o&&i(o.call(t)),n}}},function(t,n,e){var i=e(1)(\"iterator\"),r=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){r=!0}};a[i]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}\nt.exports=function(t,n){if(!n&&!r)return!1;var e=!1;try{var o={};o[i]=function(){return{next:function(){return{done:e=!0}}}},t(o)}catch(t){}\nreturn e}},function(t,n,e){var i,r,o,a,s,d,c,u,l=e(0),A=e(23).f,m=e(14),p=e(60).set,f=e(61),g=l.MutationObserver||l.WebKitMutationObserver,h=l.process,w=l.Promise,y=\"process\"==m(h),k=A(l,\"queueMicrotask\"),v=k&&k.value;v||(i=function(){var t,n;for(y&&(t=h.domain)&&t.exit();r;){n=r.fn,r=r.next;try{n()}catch(t){throw r?a():o=void 0,t}}\no=void 0,t&&t.enter()},y?a=function(){h.nextTick(i)}:g&&!f?(s=!0,d=document.createTextNode(\"\"),new g(i).observe(d,{characterData:!0}),a=function(){d.data=s=!s}):w&&w.resolve?(c=w.resolve(void 0),u=c.then,a=function(){u.call(c,i)}):a=function(){p.call(l,i)}),t.exports=v||function(t){var n={fn:t,next:void 0};o&&(o.next=n),r||(r=n,a()),o=n}},function(t,n,e){var i=e(0);t.exports=function(t,n){var e=i.console;e&&e.error&&(1===arguments.length?e.error(t):e.error(t,n))}},function(t,n,e){var i,r,o=e(0),a=e(62),s=o.process,d=s&&s.versions,c=d&&d.v8;c?r=(i=c.split(\".\"))[0]+i[1]:a&&(!(i=a.match(/Edge\\/(\\d+)/))||i[1]>=74)&&(i=a.match(/Chrome\\/(\\d+)/))&&(r=i[1]),t.exports=r&&+r},function(t,n,e){\"use strict\";var i=e(5),r=e(16),o=e(57),a=e(2),s=e(10),d=e(59),c=e(63),u=e(12);i({target:\"Promise\",proto:!0,real:!0,forced:!!o&&a((function(){o.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var n=d(this,s(\"Promise\")),e=\"function\"==typeof t;return this.then(e?function(e){return c(n,t()).then((function(){return e}))}:t,e?function(e){return c(n,t()).then((function(){throw e}))}:t)}}),r||\"function\"!=typeof o||o.prototype.finally||u(o.prototype,\"finally\",s(\"Promise\").prototype.finally)},function(t,n,e){\"use strict\";var i=e(5),r=e(6),o=e(34),a=e(56),s=e(35),d=e(9),c=e(19),u=e(21),l=e(7),A=e(15),m=A.set,p=A.getterFor(\"AggregateError\"),f=function(t,n){var e=this;if(!(e instanceof f))return new f(t,n);a&&(e=a(new Error(n),o(e)));var i=[];return u(t,i.push,i),r?m(e,{errors:i,type:\"AggregateError\"}):e.errors=i,void 0!==n&&l(e,\"message\",String(n)),e};f.prototype=s(Error.prototype,{constructor:c(5,f),message:c(5,\"\"),name:c(5,\"AggregateError\")}),r&&d.f(f.prototype,\"errors\",{get:function(){return p(this).errors},configurable:!0}),i({global:!0},{AggregateError:f})},function(t,n,e){e(64)},function(t,n,e){\"use strict\";var i=e(5),r=e(18),o=e(22);i({target:\"Promise\",stat:!0},{try:function(t){var n=r.f(this),e=o(t);return(e.error?n.reject:n.resolve)(e.value),n.promise}})},function(t,n,e){\"use strict\";var i=e(5),r=e(13),o=e(10),a=e(18),s=e(22),d=e(21);i({target:\"Promise\",stat:!0},{any:function(t){var n=this,e=a.f(n),i=e.resolve,c=e.reject,u=s((function(){var e=r(n.resolve),a=[],s=0,u=1,l=!1;d(t,(function(t){var r=s++,d=!1;a.push(void 0),u++,e.call(n,t).then((function(t){d||l||(l=!0,i(t))}),(function(t){d||l||(d=!0,a[r]=t,--u||c(new(o(\"AggregateError\"))(a,\"No one promise resolved\")))}))})),--u||c(new(o(\"AggregateError\"))(a,\"No one promise resolved\"))}));return u.error&&c(u.value),e.promise}})},function(t,n){!function(t){\"use strict\";if(!t.fetch){var n=\"URLSearchParams\"in t,e=\"Symbol\"in t&&\"iterator\"in Symbol,i=\"FileReader\"in t&&\"Blob\"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),r=\"FormData\"in t,o=\"ArrayBuffer\"in t;if(o)var a=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"],s=function(t){return t&&DataView.prototype.isPrototypeOf(t)},d=ArrayBuffer.isView||function(t){return t&&a.indexOf(Object.prototype.toString.call(t))>-1};p.prototype.append=function(t,n){t=l(t),n=A(n);var e=this.map[t];this.map[t]=e?e+\",\"+n:n},p.prototype.delete=function(t){delete this.map[l(t)]},p.prototype.get=function(t){return t=l(t),this.has(t)?this.map[t]:null},p.prototype.has=function(t){return this.map.hasOwnProperty(l(t))},p.prototype.set=function(t,n){this.map[l(t)]=A(n)},p.prototype.forEach=function(t,n){for(var e in this.map)this.map.hasOwnProperty(e)&&t.call(n,this.map[e],e,this)},p.prototype.keys=function(){var t=[];return this.forEach((function(n,e){t.push(e)})),m(t)},p.prototype.values=function(){var t=[];return this.forEach((function(n){t.push(n)})),m(t)},p.prototype.entries=function(){var t=[];return this.forEach((function(n,e){t.push([e,n])})),m(t)},e&&(p.prototype[Symbol.iterator]=p.prototype.entries);var c=[\"DELETE\",\"GET\",\"HEAD\",\"OPTIONS\",\"POST\",\"PUT\"];k.prototype.clone=function(){return new k(this,{body:this._bodyInit})},y.call(k.prototype),y.call(b.prototype),b.prototype.clone=function(){return new b(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new p(this.headers),url:this.url})},b.error=function(){var t=new b(null,{status:0,statusText:\"\"});return t.type=\"error\",t};var u=[301,302,303,307,308];b.redirect=function(t,n){if(-1===u.indexOf(n))throw new RangeError(\"Invalid status code\");return new b(null,{status:n,headers:{location:t}})},t.Headers=p,t.Request=k,t.Response=b,t.fetch=function(t,n){return new Promise((function(e,r){var o=new k(t,n),a=new XMLHttpRequest;a.onload=function(){var t,n,i={status:a.status,statusText:a.statusText,headers:(t=a.getAllResponseHeaders()||\"\",n=new p,t.replace(/\\r?\\n[\\t ]+/g,\" \").split(/\\r?\\n/).forEach((function(t){var e=t.split(\":\"),i=e.shift().trim();if(i){var r=e.join(\":\").trim();n.append(i,r)}})),n)};i.url=\"responseURL\"in a?a.responseURL:i.headers.get(\"X-Request-URL\");var r=\"response\"in a?a.response:a.responseText;e(new b(r,i))},a.onerror=function(){r(new TypeError(\"Network request failed\"))},a.ontimeout=function(){r(new TypeError(\"Network request failed\"))},a.open(o.method,o.url,!0),\"include\"===o.credentials?a.withCredentials=!0:\"omit\"===o.credentials&&(a.withCredentials=!1),\"responseType\"in a&&i&&(a.responseType=\"blob\"),o.headers.forEach((function(t,n){a.setRequestHeader(n,t)})),a.send(void 0===o._bodyInit?null:o._bodyInit)}))},t.fetch.polyfill=!0}\nfunction l(t){if(\"string\"!=typeof t&&(t=String(t)),/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(t))throw new TypeError(\"Invalid character in header field name\");return t.toLowerCase()}\nfunction A(t){return \"string\"!=typeof t&&(t=String(t)),t}\nfunction m(t){var n={next:function(){var n=t.shift();return{done:void 0===n,value:n}}};return e&&(n[Symbol.iterator]=function(){return n}),n}\nfunction p(t){this.map={},t instanceof p?t.forEach((function(t,n){this.append(n,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(n){this.append(n,t[n])}),this)}\nfunction f(t){if(t.bodyUsed)return Promise.reject(new TypeError(\"Already read\"));t.bodyUsed=!0}\nfunction g(t){return new Promise((function(n,e){t.onload=function(){n(t.result)},t.onerror=function(){e(t.error)}}))}\nfunction h(t){var n=new FileReader,e=g(n);return n.readAsArrayBuffer(t),e}\nfunction w(t){if(t.slice)return t.slice(0);var n=new Uint8Array(t.byteLength);return n.set(new Uint8Array(t)),n.buffer}\nfunction y(){return this.bodyUsed=!1,this._initBody=function(t){if(this._bodyInit=t,t)\nif(\"string\"==typeof t)this._bodyText=t;else if(i&&Blob.prototype.isPrototypeOf(t))this._bodyBlob=t;else if(r&&FormData.prototype.isPrototypeOf(t))this._bodyFormData=t;else if(n&&URLSearchParams.prototype.isPrototypeOf(t))this._bodyText=t.toString();else if(o&&i&&s(t))this._bodyArrayBuffer=w(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!o||!ArrayBuffer.prototype.isPrototypeOf(t)&&!d(t))throw new Error(\"unsupported BodyInit type\");this._bodyArrayBuffer=w(t)}else this._bodyText=\"\";this.headers.get(\"content-type\")||(\"string\"==typeof t?this.headers.set(\"content-type\",\"text/plain;charset=UTF-8\"):this._bodyBlob&&this._bodyBlob.type?this.headers.set(\"content-type\",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"))},i&&(this.blob=function(){var t=f(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error(\"could not read FormData body as blob\");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(h)}),this.text=function(){var t,n,e,i=f(this);if(i)return i;if(this._bodyBlob)return t=this._bodyBlob,n=new FileReader,e=g(n),n.readAsText(t),e;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var n=new Uint8Array(t),e=new Array(n.length),i=0;i<n.length;i++)e[i]=String.fromCharCode(n[i]);return e.join(\"\")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error(\"could not read FormData body as text\");return Promise.resolve(this._bodyText)},r&&(this.formData=function(){return this.text().then(v)}),this.json=function(){return this.text().then(JSON.parse)},this}\nfunction k(t,n){var e,i,r=(n=n||{}).body;if(t instanceof k){if(t.bodyUsed)throw new TypeError(\"Already read\");this.url=t.url,this.credentials=t.credentials,n.headers||(this.headers=new p(t.headers)),this.method=t.method,this.mode=t.mode,r||null==t._bodyInit||(r=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=n.credentials||this.credentials||\"omit\",!n.headers&&this.headers||(this.headers=new p(n.headers)),this.method=(e=n.method||this.method||\"GET\",i=e.toUpperCase(),c.indexOf(i)>-1?i:e),this.mode=n.mode||this.mode||null,this.referrer=null,(\"GET\"===this.method||\"HEAD\"===this.method)&&r)throw new TypeError(\"Body not allowed for GET or HEAD requests\");this._initBody(r)}\nfunction v(t){var n=new FormData;return t.trim().split(\"&\").forEach((function(t){if(t){var e=t.split(\"=\"),i=e.shift().replace(/\\+/g,\" \"),r=e.join(\"=\").replace(/\\+/g,\" \");n.append(decodeURIComponent(i),decodeURIComponent(r))}})),n}\nfunction b(t,n){n||(n={}),this.type=\"default\",this.status=void 0===n.status?200:n.status,this.ok=this.status>=200&&this.status<300,this.statusText=\"statusText\"in n?n.statusText:\"OK\",this.headers=new p(n.headers),this.url=n.url||\"\",this._initBody(t)}}(\"undefined\"!=typeof self?self:this)},function(t,n){/*!@source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/\"document\"in window.self&&(\"classList\"in document.createElement(\"_\")&&(!document.createElementNS||\"classList\"in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))||function(t){\"use strict\";if(\"Element\"in t){var n=t.Element.prototype,e=Object,i=String.prototype.trim||function(){return this.replace(/^\\s+|\\s+$/g,\"\")},r=Array.prototype.indexOf||function(t){for(var n=0,e=this.length;n<e;n++)\nif(n in this&&this[n]===t)return n;return-1},o=function(t,n){this.name=t,this.code=DOMException[t],this.message=n},a=function(t,n){if(\"\"===n)throw new o(\"SYNTAX_ERR\",\"An invalid or illegal string was specified\");if(/\\s/.test(n))throw new o(\"INVALID_CHARACTER_ERR\",\"String contains an invalid character\");return r.call(t,n)},s=function(t){for(var n=i.call(t.getAttribute(\"class\")||\"\"),e=n?n.split(/\\s+/):[],r=0,o=e.length;r<o;r++)this.push(e[r]);this._updateClassName=function(){t.setAttribute(\"class\",this.toString())}},d=s.prototype=[],c=function(){return new s(this)};if(o.prototype=Error.prototype,d.item=function(t){return this[t]||null},d.contains=function(t){return-1!==a(this,t+=\"\")},d.add=function(){var t,n=arguments,e=0,i=n.length,r=!1;do{t=n[e]+\"\",-1===a(this,t)&&(this.push(t),r=!0)}while(++e<i);r&&this._updateClassName()},d.remove=function(){var t,n,e=arguments,i=0,r=e.length,o=!1;do{for(t=e[i]+\"\",n=a(this,t);-1!==n;)this.splice(n,1),o=!0,n=a(this,t)}while(++i<r);o&&this._updateClassName()},d.toggle=function(t,n){t+=\"\";var e=this.contains(t),i=e?!0!==n&&\"remove\":!1!==n&&\"add\";return i&&this[i](t),!0===n||!1===n?n:!e},d.toString=function(){return this.join(\" \")},e.defineProperty){var u={get:c,enumerable:!0,configurable:!0};try{e.defineProperty(n,\"classList\",u)}catch(t){void 0!==t.number&&-2146823252!==t.number||(u.enumerable=!1,e.defineProperty(n,\"classList\",u))}}else e.prototype.__defineGetter__&&n.__defineGetter__(\"classList\",c)}}(window.self),function(){\"use strict\";var t=document.createElement(\"_\");if(t.classList.add(\"c1\",\"c2\"),!t.classList.contains(\"c2\")){var n=function(t){var n=DOMTokenList.prototype[t];DOMTokenList.prototype[t]=function(t){var e,i=arguments.length;for(e=0;e<i;e++)t=arguments[e],n.call(this,t)}};n(\"add\"),n(\"remove\")}\nif(t.classList.toggle(\"c3\",!1),t.classList.contains(\"c3\")){var e=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,n){return 1 in arguments&&!this.contains(t)==!n?n:e.call(this,t)}}\nt=null}())},function(t,n,e){\"use strict\";e.r(n);var i=e(65),r=e.n(i),o=e(66),a=e.n(o);e(107),e(108);void 0===Object.assign&&(Object.assign=r.a),\"undefined\"==typeof Promise&&(window.Promise=a.a);var s=e(11),d=e.n(s),c={ready:\"pokiAppReady\",adblocked:\"pokiAppAdblocked\",ads:{completed:\"pokiAdsCompleted\",error:\"pokiAdsError\",displayError:\"pokiAdsDisplayError\",impression:\"pokiAdsImpression\",durationChange:\"pokiAdsDurationChange\",limit:\"pokiAdsLimit\",ready:\"pokiAdsReady\",requested:\"pokiAdsRequested\",skipped:\"pokiAdsSkipped\",started:\"pokiAdsStarted\",stopped:\"pokiAdsStopped\",busy:\"pokiAdsBusy\",pushedToPlatform:\"pokiPushedToPlatform\",position:{preroll:\"PP\",midroll:\"PM\",rewarded:\"PR\"},video:{clicked:\"pokiVideoAdsClicked\",firstQuartile:\"pokiVideoAdsFirstQuartile\",midPoint:\"pokiVideoAdsMidPoint\",thirdQuartile:\"pokiVideoAdsThirdQuartile\",error:\"pokiVideoAdsError\",paused:\"pokiVideoAdsPauseTriggered\",resumed:\"pokiVideoAdsResumedTriggered\",progress:\"pokiVideoAdsProgress\"}},info:{messages:{timeLimit:\"The ad-request was not processed, because of a time constraint\",prerollLimit:\"The ad-request was cancelled, because we're not allowed to show a preroll\"}},message:{event:\"pokiMessageEvent\",sdkDetails:\"pokiMessageSdkDetails\",toggleProgrammaticAds:\"pokiMessageToggleProgrammaticAds\",runAdOnPlatform:\"pokiMessageRunAdOnPlatform\",minimizeAd:\"pokiMessageMinimizeAd\"},tracking:{custom:\"pokiTrackingCustom\",setPlayerAge:\"pokiTrackingSetPlayerAge\",togglePlayerAdvertisingConsent:\"pokiTrackingTogglePlayerAdvertisingConsent\",debugTrueInProduction:\"pokiMessageDebugTrueProduction\",screen:{gameplayStart:\"pokiTrackingScreenGameplayStart\",gameplayStop:\"pokiTrackingScreenGameplayStop\",gameLoadingStarted:\"pokiTrackingScreenGameLoadingStarted\",gameLoadingProgress:\"pokiTrackingScreenGameLoadingProgress\",gameLoadingFinished:\"pokiTrackingScreenGameLoadingFinished\",commercialBreak:\"pokiTrackingScreenCommercialBreak\",rewardedBreak:\"pokiTrackingScreenRewardedBreak\",happyTime:\"pokiTrackingScreenHappyTime\",firstRound:\"pokiTrackingScreenFirstRound\",roundStart:\"pokiTrackingScreenRoundStart\",roundEnd:\"pokiTrackingScreenRoundEnd\",gameInteractive:\"pokiTrackingScreenGameInteractive\",displayAd:\"pokiTrackingScreenDisplayAdRequest\",destroyAd:\"pokiTrackingScreenDisplayAdDestroy\",sendHighscore:\"pokiTrackingScreenSendHighscore\",getLeaderboard:\"pokiTrackingScreenGetLeaderboard\"},sdk:{status:{initialized:\"pokiTrackingSdkStatusInitialized\",failed:\"pokiTrackingSdkStatusFailed\"}},ads:{status:{busy:\"pokiTrackingAdsStatusBusy\",completed:\"pokiTrackingAdsStatusCompleted\",error:\"pokiTrackingAdsStatusError\",displayError:\"pokiTrackingAdsStatusDisplayError\",impression:\"pokiTrackingAdsStatusImpression\",limit:\"pokiTrackingAdsStatusLimit\",ready:\"pokiTrackingAdsStatusReady\",requested:\"pokiTrackingAdsStatusRequested\",skipped:\"pokiTrackingAdsStatusSkipped\",started:\"pokiTrackingAdsStatusStarted\",manualSkipButtonPressed:\"pokiTrackingAdsStatusManualSkipButtonPressed\",minimizeButtonPressed:\"pokiTrackingAdsStatusMinimizeButtonPressed\"},video:{clicked:\"pokiTrackingAdsVideoClicked\"}}}},u=function(){return(u=Object.assign||function(t){for(var n,e=1,i=arguments.length;e<i;e++)\nfor(var r in n=arguments[e])Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r]);return t}).apply(this,arguments)},l=function(){function t(){}\nreturn t.clearEventListeners=function(){this.listeners={}},t.removeEventListener=function(t,n){if(Object.prototype.hasOwnProperty.call(this.listeners,t)){var e=this.listeners[t].indexOf(n);-1!==e&&this.listeners[t].splice(e,1)}},t.addEventListener=function(t,n,e){var i=this;if(void 0===e&&(e=!1),e=!!e,Object.prototype.hasOwnProperty.call(this.listeners,t)||(this.listeners[t]=[]),e){var r=function(e){i.removeEventListener.bind(i)(t,r),n(e)};this.listeners[t].push(r)}else this.listeners[t].push(n)},t.dispatchEvent=function(t,n){void 0===n&&(n={}),!this.debug||window.process&&window.process.env&&\"test\"===window.process.env.NODE_ENV||console.info(t,n);for(var e=Object.keys(this.listeners),i=0;i<e.length;i++){var r=e[i];if(t===r)\nfor(var o=this.listeners[r],a=0;a<o.length;a++)o[a](u(u({},this.dataAnnotations),n))}},t.setDebug=function(t){this.debug=t},t.setDataAnnotations=function(t){this.dataAnnotations=u(u({},this.dataAnnotations),t)},t.getDataAnnotations=function(){return this.dataAnnotations},t.clearAnnotations=function(){this.dataAnnotations={}},t.listeners={},t.debug=!1,t.dataAnnotations={},t}(),A=function(t,n){var e=!1;return Object.keys(n).forEach((function(i){n[i]===t&&(e=!0)})),e},m=function(){function t(){}\nreturn t.sendMessage=function(t,n){void 0===n&&(n={});var e=window.parent;if(!A(t,c.message)){var i=Object.keys(c.message).map((function(t){return \"poki.message.\"+t}));throw new TypeError(\"Argument 'type' must be one of \"+i.join(\", \"))}\ne.postMessage({type:t,content:n},\"*\")},t}(),p=function(t){var n=new Array;return Object.keys(t).forEach((function(e){\"object\"==typeof t[e]?n=n.concat(p(t[e])):n.push(t[e])})),n},f=p(c.tracking),g=function(){function t(){}\nreturn t.setDebug=function(t){this.debug=t},t.track=function(t,n){if(void 0===n&&(n={}),-1===f.indexOf(t))throw new TypeError(\"Invalid 'event', must be one of \"+f.join(\", \"));if(\"object\"!=typeof n)throw new TypeError(\"Invalid data, must be an object\");if(this.debug){if(window.process&&window.process.env&&\"test\"===window.process.env.NODE_ENV)return;Object.keys(n).length?console.info(\"%cPOKI_TRACKER: %cTracked event '\"+t+\"' with data:\",\"font-weight: bold\",\"\",n):console.info(\"%cPOKI_TRACKER: %cTracked event '\"+t+\"'\",\"font-weight: bold\",\"\")}\nm.sendMessage(c.message.event,{event:t,data:n})},t.setupDefaultEvents=function(){var n,e=((n={})[c.ready]=c.tracking.sdk.status.initialized,n[c.adblocked]=c.tracking.sdk.status.failed,n[c.ads.busy]=c.tracking.ads.status.busy,n[c.ads.completed]=c.tracking.ads.status.completed,n[c.ads.error]=c.tracking.ads.status.error,n[c.ads.displayError]=c.tracking.ads.status.displayError,n[c.ads.impression]=c.tracking.ads.status.impression,n[c.ads.limit]=c.tracking.ads.status.limit,n[c.ads.ready]=c.tracking.ads.status.ready,n[c.ads.requested]=c.tracking.ads.status.requested,n[c.ads.skipped]=c.tracking.ads.status.skipped,n[c.ads.started]=c.tracking.ads.status.started,n[c.ads.video.clicked]=c.tracking.ads.video.clicked,n[c.tracking.screen.gameplayStart]=c.tracking.screen.gameplayStart,n[c.tracking.screen.gameplayStop]=c.tracking.screen.gameplayStop,n[c.tracking.screen.loadingProgress]=c.tracking.screen.loadingProgress,n[c.tracking.screen.commercialBreak]=c.tracking.screen.commercialBreak,n[c.tracking.screen.rewardedBreak]=c.tracking.screen.rewardedBreak,n[c.tracking.screen.happyTime]=c.tracking.screen.happyTime,n[c.tracking.screen.sendHighscore]=c.tracking.screen.sendHighscore,n[c.tracking.screen.getLeaderboard]=c.tracking.screen.getLeaderboard,n);Object.keys(e).forEach((function(n){l.addEventListener(n,(function(i){t.track(e[n],i)}))}))},t.debug=!1,t}(),h={adTagUrl:\"//pubads.g.doubleclick.net/gampad/ads?sz=640x360|640x480&iu=/1053551/Pub-Poki-Generic&ciu_szs&impl=s&gdfp_req=1&env=vp&output=xml_vast2&unviewed_position_start=1&url={url}&description_url={descriptionUrl}&correlator={timestamp}\",adTiming:{preroll:!1,timeBetweenAds:12e4,timePerTry:7e3,startAdsAfter:12e4},waterfallRetries:2,country:\"NL\"},w=function(t){return t instanceof Array?t:[t]},y=function(){function t(t){void 0===t&&(t={}),this.setTimings(t),this.timingIdx={timePerTry:0},this.timers={timePerTry:void 0,timeBetweenAds:void 0,startAdsAfter:void 0},l.addEventListener(c.ads.pushedToPlatform,this.startTimeBetweenAdsTimer.bind(this)),l.addEventListener(c.ads.requested,this.startTimeBetweenAdsTimer.bind(this)),l.addEventListener(c.ads.completed,this.startTimeBetweenAdsTimer.bind(this)),l.addEventListener(c.ads.stopped,this.startTimeBetweenAdsTimer.bind(this))}\nreturn t.prototype.setTimings=function(t){var n=h.adTiming,e=t.preroll,i=void 0===e?n.preroll:e,r=t.timePerTry,o=void 0===r?n.timePerTry:r,a=t.timeBetweenAds,s=void 0===a?n.timeBetweenAds:a,d=t.startAdsAfter,c=void 0===d?n.startAdsAfter:d;this.timings={preroll:!1!==i,timePerTry:w(o),timeBetweenAds:s,startAdsAfter:c}},t.prototype.startTimeBetweenAdsTimer=function(){this.startTimer(\"timeBetweenAds\")},t.prototype.startStartAdsAfterTimer=function(){this.startTimer(\"startAdsAfter\")},t.prototype.requestPossible=function(){return!this.timers.timeBetweenAds&&!this.timers.startAdsAfter},t.prototype.startWaterfallTimer=function(t){this.startTimer(\"timePerTry\",t)},t.prototype.stopWaterfallTimer=function(){this.stopTimer(\"timePerTry\")},t.prototype.nextWaterfallTimer=function(){this.nextTiming(\"timePerTry\")},t.prototype.resetWaterfallTimerIdx=function(){this.resetTimingIdx(\"timePerTry\")},t.prototype.stopTimer=function(t){this.timers[t]&&(clearTimeout(this.timers[t]),this.timers[t]=void 0)},t.prototype.startTimer=function(t,n){var e=this;void 0===n&&(n=function(){}),this.getTiming(t)<=0?n():(this.timers[t]&&clearTimeout(this.timers[t]),this.timers[t]=setTimeout((function(){e.stopTimer(t),n()}),this.getTiming(t)))},t.prototype.getTiming=function(t){var n=this.timings[t];return n instanceof Array?n[this.timingIdx[t]]:n},t.prototype.nextTiming=function(t){if(void 0===this.timingIdx[t])throw new Error(\"AdTimings Error: \"+t+\" does not have multiple timers\");this.timingIdx[t]=(this.timingIdx[t]+1)%this.timings[t].length},t.prototype.resetTimingIdx=function(t){if(void 0===this.timingIdx[t])throw new Error(\"AdTimings Error: \"+t+\" does not have multiple timers\");this.timingIdx[t]=0},t.prototype.prerollPossible=function(){return this.timings.preroll},t}(),k=function(){return window.location.href},v=function(){return \"undefined\"!=typeof navigator&&/(?:phone|windows\\s+phone|ipod|blackberry|(?:android|bb\\d+|meego|silk|googlebot) .+? mobile|palm|windows\\s+ce|opera\\smini|avantgo|mobilesafari|docomo)/i.test(navigator.userAgent)},b=function(){return \"undefined\"!=typeof navigator&&/(?:ipad|playbook|(?:android|bb\\d+|meego|silk)(?! .+? mobile))/i.test(navigator.userAgent)},S=function(t,n){if(\"undefined\"==typeof window)return \"\";t=t.replace(/[\\[]/,\"\\\\[\").replace(/[\\]]/,\"\\\\]\");var e=new RegExp(\"[\\\\?&]\"+t+\"=([^&#]*)\").exec(n||window.location.search);return null===e?\"\":decodeURIComponent(e[1].replace(/\\+/g,\" \"))},E=function(){return(E=Object.assign||function(t){for(var n,e=1,i=arguments.length;e<i;e++)\nfor(var r in n=arguments[e])Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r]);return t}).apply(this,arguments)},x=function(){for(var t=0,n=0,e=arguments.length;n<e;n++)t+=arguments[n].length;var i=Array(t),r=0;for(n=0;n<e;n++)\nfor(var o=arguments[n],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i},T=parseInt(S(\"site_id\"),10)||0,z={allowSmallerSizes:!0,frameworks:[2],h:480,maxduration:15,mimes:\"undefined\"!=typeof navigator&&/MSIE \\\\d|Trident.*rv:/i.test(navigator.userAgent)||v()||b()?[\"video/mp4\"]:[\"video/mp4\",\"video/webm\",\"video/ogg\"],startdelay:0,w:640,video:{playback_method:[\"auto_play_sound_on\",\"auto_play_sound_off\",\"auto_play_sound_unknown\"]}},C=x([{bidder:\"appnexus\",params:E(E({placementId:13184250},z),{video:E(E({},z.video),{skippable:!0})})},{bidder:\"appnexus\",params:E(E({placementId:13184309},z),{video:E(E({},z.video),{skippable:!1,maxduration:15})})},{bidder:\"openx\",params:{unit:\"540105196\",delDomain:\"poki-d.openx.net\",openrtb:{imp:[{video:{mimes:[z.mimes.join(\",\")],protocols:[2,3,5,6,7,8],maxduration:15,skip:1,skipafter:5,w:640,h:480}}]}}},{bidder:\"openx\",params:{unit:\"540719065\",delDomain:\"poki-d.openx.net\",openrtb:{imp:[{video:{mimes:[z.mimes.join(\",\")],protocols:[2,3,5,6,7,8],maxduration:15,skip:0,w:640,h:480}}]}}},{bidder:\"districtm\",params:E(E({placementId:12906789},z),{video:E(E({},z.video),{skippable:!1,maxduration:15})})},{bidder:\"spotx\",params:{channel_id:\"265590\",ad_unit:\"instream\",secure:!0,mimes:z.mimes,hide_skin:!0}},{bidder:\"ix\",params:{siteId:\"436284\",size:[640,480],video:{mimes:z.mimes,protocols:[2,3,5,6,7,8],minduration:0,maxduration:15}}},{bidder:\"emx_digital\",params:{tagid:\"100598\"}}],[2,3,9,25,26,27,28,32,33,34,35,36,41,42].includes(T)?[{bidder:\"richaudience\",params:{pid:{1:\"g5ggMnI6xT\",2:\"lHMvi7OD60\",3:\"FpeabuqdcE\",4:\"00Zb1PwVHr\",5:\"VI0QDby6Ve\",6:\"z3zWdnIzMW\",7:\"YEEmoBceH5\",8:\"ADIfc2WQDl\",9:\"wBSi2eiNVR\",10:\"1q2NODRZj3\",11:\"1HwhhlVt89\",12:\"5rqqrYdnqH\",14:\"07lwKkcpin\",15:\"1Ah9mhTnvt\",16:\"1fd5cHLOqs\",17:\"xhr60ja0TG\",19:\"1wkvxV19pR\",20:\"0Kx3QH3Bt3\",21:\"1ByiARwe2D\",22:\"1N7iwOY3go\",23:\"1zLklqBXnX\",24:\"1Vrgstvxwi\",25:\"lroD42SjHF\",26:\"0bTkTIVtwB\",27:\"0hqCWELXt8\",28:\"02AXESLU5Y\",29:\"TiI8Y9VoI1\",30:\"1C7UMEyNVK\",31:\"12y22zvwyq\",32:\"PSW2JxInvH\",33:\"1PqwM9yzAK\",34:\"uZSsNaRvZw\",36:\"GXodoh977B\",37:\"3HCppqsTeg\",38:\"0pUfTM09m1\",41:\"XqD7XrVwbr\",42:\"1DtZBPnpWp\",47:\"0D3fD9BwfK\",49:\"0oSr0bZt8C\",50:\"1RlFE13iG6\"}[T],supplyType:\"site\"}}]:[]),B={video:{context:\"instream\",playerSize:[640,480],mimes:z.mimes,protocols:[2,3,5,6,7,8],maxduration:15,skip:1,linearity:1,api:[2]}},I=[{code:\"video\",mediaTypes:B,bids:x(C,[{bidder:\"rubicon\",params:{accountId:\"18608\",siteId:\"266914\",zoneId:\"1322034\",video:{size_id:204}}}])},{code:\"rewarded\",mediaTypes:B,bids:x(C,[{bidder:\"rubicon\",params:{accountId:\"18608\",siteId:\"266916\",zoneId:\"1322048\",video:{size_id:202}}}])}],_={EUR:{EUR:1,GBP:.858595,USD:1.13151},GBP:{EUR:1.164693481792929,GBP:1,USD:1.3178623215835172},USD:{EUR:.8837747788353616,GBP:.7588046062341472,USD:1}},P={debug:!1,enableSendAllBids:!0,usePrebidCache:!0,bidderTimeout:1500,priceGranularity:{buckets:[{precision:2,min:.01,max:3,increment:.01},{precision:2,min:3,max:8,increment:.05},{precision:2,min:8,max:20,increment:.5},{precision:2,min:20,max:45,increment:1}]},currency:{adServerCurrency:\"EUR\",rates:_,defaultRates:_,bidderCurrencyDefault:{openx:\"EUR\"}},cache:{url:\"https://prebid.adnxs.com/pbc/v1/cache\"},userSync:{pixelsEnabled:!0,iframeEnabled:!0,syncsPerBidder:4,syncDelay:100,userIds:[{name:\"pubCommonId\",storage:{type:\"cookie\",name:\"poki_pubcid\",expires:365}}]}};function D(t){try{var n=window.pbjs.getBidResponsesForAdUnitCode(t).bids;window.pokiAuctionsSeen||(window.pokiAuctionsSeen={}),window.pokiAuctionsSeen[t]||(window.pokiAuctionsSeen[t]={});var e=0;if(n){for(var i=0;i<n.length;i++)\nif(!window.pokiAuctionsSeen[t][n[i].auctionId]){var r=n[i].cpm;r&&r>e&&(e=r)}for(i=0;i<n.length;i++)window.pokiAuctionsSeen[t][n[i].auctionId]=!0}\nreturn e}catch(t){console.error(t)}\nreturn 0}\nvar L=function(){function t(t,n){void 0===n&&(n={}),this.retries=0,this.running=!1,this.ima=t,this.siteID=n.siteID||3,0===n.siteID&&(n.siteID=3),this.totalRetries=n.totalRetries||h.waterfallRetries||1,this.timing=n.timing||new y(h.adTiming),this.overwriteAdTagUrls=n.adTagUrl?w(n.adTagUrl):[],this.disableHB=n.disableHB||!1,this.opportunityId=\"\",l.addEventListener(c.ads.video.error,this.moveThroughWaterfall.bind(this)),l.addEventListener(c.ads.ready,this.timing.stopWaterfallTimer.bind(this.timing)),l.addEventListener(c.ads.started,this.stopWaterfall.bind(this))}\nreturn t.prototype.moveThroughWaterfall=function(){if(!1!==this.running){if(this.timing.stopWaterfallTimer(),this.retries<this.totalRetries)return this.timing.nextWaterfallTimer(),void this.requestAd();this.running=!1,this.timing.resetWaterfallTimerIdx(),l.dispatchEvent(c.ads.error,{message:\"No ads\"})}},t.prototype.cutOffWaterfall=function(){this.ima.stopPlayback(),this.moveThroughWaterfall()},t.prototype.buildAdTagUrls=function(t){var n=\"&ciu_szs&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&url={url}&description_url={descriptionUrl}&correlator={timestamp}\";if(this.debug){var e=\"https://securepubads.g.doubleclick.net/gampad/ads?sz=640x360|640x480&iu=/21682198607/debug-video/\";return t===c.ads.position.rewarded?[e+\"debug-video-rewarded\"+n]:t===c.ads.position.preroll?[e+\"debug-video-preroll\"+n]:[e+\"debug-video-midroll\"+n]}\nif(this.overwriteAdTagUrls.length>0&&pt.GetIsPokiPlatform())return this.overwriteAdTagUrls;var i=\"desktop\",r=\"midroll\";v()?i=\"mobile\":b()&&(i=\"tablet\"),t===c.ads.position.rewarded&&(r=\"rewarded\");var o=\"https://securepubads.g.doubleclick.net/gampad/ads?sz=640x360|640x480&iu=/21682198607/\";return pt.GetIsPokiIFrame()?[\"\"+o+i+\"_ingame_\"+r+\"_1/\"+this.siteID+\"_\"+i+\"_ingame_\"+r+\"_1\"+n,\"\"+o+i+\"_ingame_\"+r+\"_2/\"+this.siteID+\"_\"+i+\"_ingame_\"+r+\"_2\"+n]:[o+\"external_\"+i+\"_video_1/external_\"+i+\"_ingame_\"+r+\"_1\"+n,o+\"external_\"+i+\"_video_2/external_\"+i+\"_ingame_\"+r+\"_2\"+n]},t.prototype.start=function(t,n,e,i){void 0===t&&(t={}),this.running=!0,this.retries=0,this.criteria=t,this.timing.resetWaterfallTimerIdx(),(e||[]).length>0&&(this.overwriteAdTagUrls=e||[]),this.opportunityId=Math.random().toString(36).substring(2),this.rewarded=n===c.ads.position.rewarded,this.runAdOnPlatform=i||!1,this.adTagUrls=this.buildAdTagUrls(n),this.requestAd()},t.prototype.requestAd=function(){this.timing.startWaterfallTimer(this.cutOffWaterfall.bind(this)),this.retries++,pt.GetIsPokiPlatform()||(this.criteria.waterfall=this.retries);var t=(this.retries-1)%this.adTagUrls.length,n=this.adTagUrls[t],e=this.criteria?this.criteria.position:void 0;if(pt.consentString&&pt.consentString.length>0&&(this.criteria.consent_string=pt.consentString),this.runAdOnPlatform)return m.sendMessage(c.message.runAdOnPlatform,{position:e,adTagUrls:this.adTagUrls,criteria:this.criteria}),this.stopWaterfall(),void l.dispatchEvent(c.ads.pushedToPlatform);var i,r,o=function(t){var n=k().split(\"?\"),e=encodeURIComponent(n[0]);return t=(t=t.split(\"{descriptionUrl}\").join(e)).split(\"{timestamp}\").join((new Date).getTime().toString())}(n)+(i=this.criteria,r=\"\",Object.keys(i).forEach((function(t){if(Object.prototype.hasOwnProperty.call(i,t)){var n=i[t];Array.isArray(n)&&(n=n.join()),r+=t+\"=\"+n+\"&\"}})),\"&cust_params=\"+(r=encodeURIComponent(r))+\"&\");pt.childDirected&&(o+=\"&tfcd=1\"),pt.nonPersonalized&&(o+=\"&npa=1\"),l.setDataAnnotations({adTagUrl:o,opportunityId:this.opportunityId,position:e,waterfall:this.retries}),l.dispatchEvent(c.ads.requested),1!==this.retries||v()||b()||this.disableHB?(console.debug(\"adRequest started in plain mode\"),this.ima.requestAd(o)):(console.debug(\"adRequest started with Prebid Video enabled\"),function(t,n,e,i){if(window.pbjs&&window.pbjs.que&&window.pbjs.getConfig){var r=k().split(\"?\"),o=encodeURIComponent(r[0]),a=i?\"rewarded\":\"video\";window.pbjs.que.push((function(){window.pbjs.requestBids({adUnitCodes:[a],bidsBackHandler:function(){try{var i=window.pbjs.adUnits.filter((function(t){return t.code===a}))[0];if(\"undefined\"===i)return console.error(\"Video-ad-unit not found, did you give it the adunit.code='video' value?\"),void t.requestAd(n);var r=window.pbjs.adServers.dfp.buildVideoUrl({adUnit:i,params:{iu:S(\"iu\",n),sz:\"640x360|640x480\",output:\"vast\",cust_params:e,description_url:o}});window.pbjs.markWinningBidAsUsed({adUnitCode:a}),t.requestAd(r)}catch(e){t.requestAd(n)}}})}))}else t.requestAd(n)}(this.ima,o,this.criteria,this.rewarded))},t.prototype.isRunning=function(){return this.running},t.prototype.stopWaterfall=function(){this.running=!1,this.timing.stopWaterfallTimer(),this.timing.resetWaterfallTimerIdx()},t.prototype.setDebug=function(t){this.debug=t},t}(),O=\"pokiSdkSkipCountdownContainer\",j=\"pokiSdkPauseButton\",M=\"pokiSdkProgressBar\",R=\"pokiSdkSkipContainer\",Z=\"pokiSdkSpinnerContainer\",G=\"pokiSdkVisible\",F=function(){function t(t){var n=this;if(this.hideElement=function(t){t.classList.add(\"pokiSdkHidden\"),t.classList.remove(G)},this.showElement=function(t){t.classList.add(G),t.classList.remove(\"pokiSdkHidden\")},this.wrapper=t.wrapper,this.skipFeature=t.skipFeature,this.minimizeFeature=t.minimizeFeature,l.addEventListener(c.ads.video.progress,(function(t){var e=t.currentTime/t.duration*100;e<100&&(n.progressBar.style.width=e+\"%\")})),l.addEventListener(c.ads.started,(function(e){var i=e.adSystem.toLowerCase();if(e.position===c.ads.position.midroll&&(n.skipFeature||n.minimizeFeature)&&\"adsense\"!==i&&\"bdm\"!==i&&e.remainingTime>5e3){n.adSkippable=!1,n.countdownValue=t.countdownStart||6,n.skipContainer.classList.remove(\"complete\");var r=pt.GetIsMinimizeTestCountry()||n.minimizeFeature;n.countdownDiv.innerHTML=r?\"Skip in \"+n.countdownValue:(t.renderSkipButton?\"Skip in \":\"Play in \")+n.countdownValue,n.skipCountdown=window.setInterval((function(){if(n.countdownValue>1)return n.countdownValue--,void(n.countdownDiv.innerHTML=r?\"Skip in \"+n.countdownValue:(t.renderSkipButton?\"Skip in \":\"Play in \")+n.countdownValue);t.renderSkipButton&&(n.adSkippable=!0,n.countdownDiv.innerHTML=r?\"Skip\":\"Skip Ad\"),n.skipContainer.classList.add(\"complete\"),window.clearInterval(n.skipCountdown)}),1e3),n.showSkipButton()}})),this.wrapper instanceof HTMLElement||(console.error(\"POKI-SDK: wrapper is not a HTMLElement, falling back to document.body\"),this.wrapper=document.body),this.createElements(),\"undefined\"!=typeof window&&document){var e=document.createElement(\"style\");e.innerHTML=\"\\n@font-face {\\n\\tfont-display: swap;\\n\\tfont-family: 'Proxima Nova';\\n\\tfont-weight: 700;\\n\\tsrc: url(https://a.poki.com/fonts/proxima-nova-bold-latin.woff2) format('woff2'), url(https://a.poki.com/fonts/proxima-nova-bold-latin.woff) format('woff');\\n\\tunicode-range: U+0020-007F, U+00A0-00FF\\n}\\n\\n@font-face {\\n\\tfont-display: swap;\\n\\tfont-family: 'Proxima Nova';\\n\\tfont-weight: 700;\\n\\tsrc: url(https://a.poki.com/fonts/proxima-nova-bold-latin-ext-a.woff2) format('woff2'), url(https://a.poki.com/fonts/proxima-nova-bold-latin-ext-a.woff) format('woff');\\n\\tunicode-range: U+0100-017F\\n}\\n\\n@font-face {\\n\\tfont-display: swap;\\n\\tfont-family: 'Proxima Nova';\\n\\tfont-weight: 700;\\n\\tsrc: url(https://a.poki.com/fonts/proxima-nova-bold-latin-ext-b.woff2) format('woff2'), url(https://a.poki.com/fonts/proxima-nova-bold-latin-ext-b.woff) format('woff');\\n\\tunicode-range: U+0180-024F\\n}\\n\\n.pokiSdkContainer {\\n\\toverflow: hidden;\\n\\tposition: absolute;\\n\\tleft: 0;\\n\\ttop: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tz-index: 1000;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n.pokiSdkContainer.pokiSdkFixed {\\n\\tposition: fixed;\\n}\\n\\n.pokiSdkContainer.pokiSdkVisible {\\n\\tdisplay: block;\\n}\\n\\n.pokiSdkContainer.pokiSdkHidden, .pokiSdkSpinnerContainer.pokiSdkHidden {\\n\\tdisplay: none;\\n}\\n\\n.pokiSdkContainer.pokiSdkHidden, .pokiSdkSpinnerContainer, .pokiSdkSpinnerContainer div, .pokiSdkSpinnerContainer img {\\n\\tpointer-events: none;\\n}\\n\\n.pokiSdkInsideContainer {\\n\\tbackground: #000;\\n\\tposition: relative;\\n\\tz-index: 1;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\topacity: 0;\\n\\t-webkit-transition: opacity 0.5s ease-in-out;\\n\\t-moz-transition: opacity 0.5s ease-in-out;\\n\\t-ms-transition: opacity 0.5s ease-in-out;\\n\\t-o-transition: opacity 0.5s ease-in-out;\\n\\ttransition: opacity 0.5s ease-in-out;\\n}\\n\\n.pokiSdkContainer.pokiSdkVisible .pokiSdkInsideContainer {\\n\\topacity: 1;\\n}\\n\\n.pokiSDKAdContainer, .pokiSdkVideoContainer {\\n\\tposition: absolute;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.pokiSdkStartAdButton, .pokiSdkPauseButton {\\n\\tposition: absolute;\\n\\tz-index: 9999;\\n\\ttop: 0;\\n\\n\\tpadding-top: 10%;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\ttext-align: center;\\n\\tcolor: #FFF;\\n\\n\\tfont: 700 16pt 'Proxima Nova', sans-serif;\\n\\tfont-weight: bold;\\n\\tletter-spacing: 1px;\\n\\ttransition: 0.1s ease-in-out;\\n\\tline-height: 1em;\\n}\\n\\n.pokiSdkProgressContainer {\\n\\tbackground: #002B50;\\n\\twidth: 100%;\\n\\theight: 5px;\\n\\tposition: absolute;\\n\\tbottom: 0;\\n\\tz-index: 9999;\\n}\\n\\n.pokiSdkProgressBar {\\n\\tposition:relative;\\n\\tbottom:0px;\\n\\tbackground: #009CFF;\\n\\theight: 100%;\\n\\twidth: 0%;\\n\\ttransition: width 0.5s;\\n\\ttransition-timing-function: linear;\\n}\\n\\n.pokiSdkSkipContainer {\\n\\tbackground: #009cff;\\n\\tborder-bottom-left-radius: 16px;\\n\\tborder-top-left-radius: 16px;\\n\\tbottom: 10%;\\n\\tbox-shadow: 0 6px 12px 0 rgba(0,0,0,.24);\\n\\tcolor: #FFF;\\n\\tcursor: pointer;\\n\\tfont: 700 16pt 'Proxima Nova', sans-serif;\\n\\theight: 42px;\\n\\tline-height: 42px;\\n\\topacity: 0.6;\\n\\tpadding-left: 15px;\\n\\tposition: absolute;\\n\\tright: 0;\\n\\ttransition: opacity 0.2s;\\n\\twidth: 115px;\\n\\tz-index: 9999;\\n}\\n\\n.pokiSdkSkipContainer.complete {\\n\\topacity: 1;\\n}\\n\\n.pokiSdkSkipContainer .pokiSdkSkipCountdownContainer {\\n\\t-webkit-touch-callout: none;\\n\\t-webkit-user-select: none;\\n\\t-khtml-user-select: none;\\n\\t-moz-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none;\\n\\tcursor: pointer;\\n}\\n\\n.pokiSdkSkipContainer.pokiSdkVisible:hover {\\n\\topacity: 1;\\n}\\n\\n.pokiSdkProgressBar.pokiSdkVisible, .pokiSdkPauseButton.pokiSdkVisible, .pokiSdkSkipContainer.pokiSdkVisible, .pokiSdkStartAdButton.pokiSdkVisible {\\n\\tdisplay: block;\\n\\tpointer-events: auto;\\n}\\n\\n.pokiSdkProgressBar.pokiSdkHidden, .pokiSdkPauseButton.pokiSdkHidden, .pokiSdkSkipContainer.pokiSdkHidden, .pokiSdkStartAdButton.pokiSdkHidden {\\n\\tdisplay: none;\\n\\tpointer-events: none;\\n}\\n\\n\\n@keyframes gwd-gen-no02gwdanimation_gwd-keyframes{0%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}25%{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}35%{opacity:1;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}40%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}100%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}}@-webkit-keyframes gwd-gen-no02gwdanimation_gwd-keyframes{0%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}25%{-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}35%{opacity:1;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}40%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}100%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}}@-moz-keyframes gwd-gen-no02gwdanimation_gwd-keyframes{0%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}25%{-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}35%{opacity:1;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}40%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}100%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}}[data-gwd-group=SpinnerGroup] .gwd-gen-no02gwdanimation{animation:gwd-gen-no02gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-webkit-animation:gwd-gen-no02gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-moz-animation:gwd-gen-no02gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards}@keyframes gwd-gen-4pvrgwdanimation_gwd-keyframes{0%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}25%{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}40%{opacity:1;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}45%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}100%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}}@-webkit-keyframes gwd-gen-4pvrgwdanimation_gwd-keyframes{0%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}25%{-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}40%{opacity:1;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}45%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}100%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}}@-moz-keyframes gwd-gen-4pvrgwdanimation_gwd-keyframes{0%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}25%{-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}40%{opacity:1;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}45%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}100%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}}[data-gwd-group=SpinnerGroup] .gwd-gen-4pvrgwdanimation{animation:gwd-gen-4pvrgwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-webkit-animation:gwd-gen-4pvrgwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-moz-animation:gwd-gen-4pvrgwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards}@keyframes gwd-gen-kw40gwdanimation_gwd-keyframes{0%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}25%{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}45%{opacity:1;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}50%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}100%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}}@-webkit-keyframes gwd-gen-kw40gwdanimation_gwd-keyframes{0%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}25%{-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}45%{opacity:1;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}50%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}100%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}}@-moz-keyframes gwd-gen-kw40gwdanimation_gwd-keyframes{0%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}25%{-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}45%{opacity:1;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}50%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}100%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}}[data-gwd-group=SpinnerGroup] .gwd-gen-kw40gwdanimation{animation:gwd-gen-kw40gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-webkit-animation:gwd-gen-kw40gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-moz-animation:gwd-gen-kw40gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards}@keyframes gwd-gen-2uv8gwdanimation_gwd-keyframes{0%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}25%{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}50%{opacity:1;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}55%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}100%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}}@-webkit-keyframes gwd-gen-2uv8gwdanimation_gwd-keyframes{0%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}25%{-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}50%{opacity:1;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}55%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}100%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}}@-moz-keyframes gwd-gen-2uv8gwdanimation_gwd-keyframes{0%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}25%{-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}50%{opacity:1;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}55%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}100%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}}[data-gwd-group=SpinnerGroup] .gwd-gen-2uv8gwdanimation{animation:gwd-gen-2uv8gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-webkit-animation:gwd-gen-2uv8gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-moz-animation:gwd-gen-2uv8gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards}@keyframes gwd-gen-1x97gwdanimation_gwd-keyframes{0%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}25%{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}55%{opacity:1;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}60%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}100%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}}@-webkit-keyframes gwd-gen-1x97gwdanimation_gwd-keyframes{0%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}25%{-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}55%{opacity:1;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}60%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}100%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}}@-moz-keyframes gwd-gen-1x97gwdanimation_gwd-keyframes{0%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}25%{-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}55%{opacity:1;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}60%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}100%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}}[data-gwd-group=SpinnerGroup] .gwd-gen-1x97gwdanimation{animation:gwd-gen-1x97gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-webkit-animation:gwd-gen-1x97gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-moz-animation:gwd-gen-1x97gwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards}@keyframes gwd-gen-1i1egwdanimation_gwd-keyframes{0%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}25%{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}60%{opacity:1;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}65%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}100%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}}@-webkit-keyframes gwd-gen-1i1egwdanimation_gwd-keyframes{0%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}25%{-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}60%{opacity:1;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}65%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}100%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}}@-moz-keyframes gwd-gen-1i1egwdanimation_gwd-keyframes{0%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}25%{-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}60%{opacity:1;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}65%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}100%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}}[data-gwd-group=SpinnerGroup] .gwd-gen-1i1egwdanimation{animation:gwd-gen-1i1egwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-webkit-animation:gwd-gen-1i1egwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-moz-animation:gwd-gen-1i1egwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards}@keyframes gwd-gen-1sapgwdanimation_gwd-keyframes{0%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}25%{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}65%{opacity:1;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:step-end;-webkit-animation-timing-function:step-end;-moz-animation-timing-function:step-end}70%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}100%{opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}}@-webkit-keyframes gwd-gen-1sapgwdanimation_gwd-keyframes{0%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}25%{-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}65%{opacity:1;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:step-end}70%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}100%{opacity:0;-webkit-transform:translate3d(0,0,0);-webkit-animation-timing-function:linear}}@-moz-keyframes gwd-gen-1sapgwdanimation_gwd-keyframes{0%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}25%{-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}65%{opacity:1;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:step-end}70%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}100%{opacity:0;-moz-transform:translate3d(0,0,0);-moz-animation-timing-function:linear}}[data-gwd-group=SpinnerGroup] .gwd-gen-1sapgwdanimation{animation:gwd-gen-1sapgwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-webkit-animation:gwd-gen-1sapgwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards;-moz-animation:gwd-gen-1sapgwdanimation_gwd-keyframes 2s linear 0s infinite normal forwards}@keyframes gwd-gen-5qotgwdanimation_gwd-keyframes{0%{transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-webkit-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-moz-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);animation-timing-function:cubic-bezier(1,0,.58,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}12.5%{transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-webkit-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-moz-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);animation-timing-function:cubic-bezier(.42,0,0,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}25%{transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-webkit-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-moz-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);animation-timing-function:cubic-bezier(1,0,.58,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}37.5%{transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-webkit-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-moz-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);animation-timing-function:cubic-bezier(.42,0,0,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}50%{transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-webkit-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-moz-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);animation-timing-function:cubic-bezier(1,0,.58,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}62.5%{transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-webkit-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-moz-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);animation-timing-function:cubic-bezier(.42,0,0,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}75%{transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-webkit-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-moz-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);animation-timing-function:cubic-bezier(1,0,.58,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}87.5%{transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-webkit-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-moz-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);animation-timing-function:cubic-bezier(.42,0,0,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}100%{transform:translate3d(0,0,0) rotateZ(360deg) scale3d(1,1,1);-webkit-transform:translate3d(0,0,0) rotateZ(360deg) scale3d(1,1,1);-moz-transform:translate3d(0,0,0) rotateZ(360deg) scale3d(1,1,1);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}}@-webkit-keyframes gwd-gen-5qotgwdanimation_gwd-keyframes{0%{-webkit-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1)}12.5%{-webkit-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1)}25%{-webkit-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1)}37.5%{-webkit-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1)}50%{-webkit-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1)}62.5%{-webkit-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1)}75%{-webkit-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1)}87.5%{-webkit-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1)}100%{-webkit-transform:translate3d(0,0,0) rotateZ(360deg) scale3d(1,1,1);-webkit-animation-timing-function:linear}}@-moz-keyframes gwd-gen-5qotgwdanimation_gwd-keyframes{0%{-moz-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}12.5%{-moz-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}25%{-moz-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}37.5%{-moz-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}50%{-moz-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}62.5%{-moz-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}75%{-moz-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}87.5%{-moz-transform:translate3d(0,200px,0) rotateZ(0) scale3d(1.2,.8,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}100%{-moz-transform:translate3d(0,0,0) rotateZ(360deg) scale3d(1,1,1);-moz-animation-timing-function:linear}}[data-gwd-group=SpinnerGroup] .gwd-gen-5qotgwdanimation{animation:gwd-gen-5qotgwdanimation_gwd-keyframes 4s linear 0s infinite normal forwards;-webkit-animation:gwd-gen-5qotgwdanimation_gwd-keyframes 4s linear 0s infinite normal forwards;-moz-animation:gwd-gen-5qotgwdanimation_gwd-keyframes 4s linear 0s infinite normal forwards}@keyframes gwd-gen-faadgwdanimation_gwd-keyframes{0%{opacity:.2;transform:scale3d(.5,.8,1);-webkit-transform:scale3d(.5,.8,1);-moz-transform:scale3d(.5,.8,1);animation-timing-function:cubic-bezier(1,0,.58,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}50%{opacity:.5;transform:scale3d(1,.8,1);-webkit-transform:scale3d(1,.8,1);-moz-transform:scale3d(1,.8,1);animation-timing-function:cubic-bezier(.42,0,0,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}100%{opacity:.2;transform:scale3d(.5,.8,1);-webkit-transform:scale3d(.5,.8,1);-moz-transform:scale3d(.5,.8,1);animation-timing-function:linear;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear}}@-webkit-keyframes gwd-gen-faadgwdanimation_gwd-keyframes{0%{opacity:.2;-webkit-transform:scale3d(.5,.8,1);-webkit-animation-timing-function:cubic-bezier(1,0,.58,1)}50%{opacity:.5;-webkit-transform:scale3d(1,.8,1);-webkit-animation-timing-function:cubic-bezier(.42,0,0,1)}100%{opacity:.2;-webkit-transform:scale3d(.5,.8,1);-webkit-animation-timing-function:linear}}@-moz-keyframes gwd-gen-faadgwdanimation_gwd-keyframes{0%{opacity:.2;-moz-transform:scale3d(.5,.8,1);-moz-animation-timing-function:cubic-bezier(1,0,.58,1)}50%{opacity:.5;-moz-transform:scale3d(1,.8,1);-moz-animation-timing-function:cubic-bezier(.42,0,0,1)}100%{opacity:.2;-moz-transform:scale3d(.5,.8,1);-moz-animation-timing-function:linear}}[data-gwd-group=SpinnerGroup] .gwd-gen-faadgwdanimation{animation:gwd-gen-faadgwdanimation_gwd-keyframes 1s linear 0s infinite normal forwards;-webkit-animation:gwd-gen-faadgwdanimation_gwd-keyframes 1s linear 0s infinite normal forwards;-moz-animation:gwd-gen-faadgwdanimation_gwd-keyframes 1s linear 0s infinite normal forwards}[data-gwd-group=SpinnerGroup] .gwd-grp-13td.gwd-img-1653{position:absolute;top:0;width:612px;height:568px;opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);left:0}[data-gwd-group=SpinnerGroup] .gwd-grp-13td.gwd-img-alsm{position:absolute;top:0;width:612px;height:568px;opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);left:0}[data-gwd-group=SpinnerGroup] .gwd-grp-13td.gwd-img-f0mu{position:absolute;top:0;width:612px;height:568px;opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);left:0}[data-gwd-group=SpinnerGroup] .gwd-grp-13td.gwd-img-1sr3{position:absolute;top:0;width:612px;height:568px;opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);left:0}[data-gwd-group=SpinnerGroup] .gwd-grp-13td.gwd-img-1ffn{position:absolute;top:0;width:612px;height:568px;opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);left:0}[data-gwd-group=SpinnerGroup] .gwd-grp-13td.gwd-img-16f3{position:absolute;top:0;width:612px;height:568px;opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);left:0}[data-gwd-group=SpinnerGroup] .gwd-grp-13td.gwd-img-1rrs{position:absolute;top:0;width:612px;height:568px;opacity:0;transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);left:0}[data-gwd-group=SpinnerGroup] .gwd-grp-13td.gwd-img-1dhi{position:absolute;transform-origin:283.711px 283.516px 0;-webkit-transform-origin:283.711px 283.516px 0;-moz-transform-origin:283.711px 283.516px 0;height:568px;width:568px;top:0;transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-webkit-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);-moz-transform:translate3d(0,0,0) rotateZ(0) scale3d(1,1,1);transform-style:preserve-3d;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;left:0}[data-gwd-group=SpinnerGroup] .gwd-grp-13td.gwd-img-1izg{position:absolute;width:568px;height:604.02px;opacity:.2;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;transform:scale3d(.5,.8,1);-webkit-transform:scale3d(.5,.8,1);-moz-transform:scale3d(.5,.8,1);top:55px;left:0}[data-gwd-group=SpinnerGroup]{width:611.979px;height:598.605px}.gwd-div-1v1s{transform:scale(.5,.5)}\\n\",document.head.appendChild(e)}}\nreturn t.prototype.setPosition=function(t){this.position=t},t.prototype.skipAdCheck=function(t){this.adSkippable&&(pt.GetIsMinimizeTestCountry()||this.minimizeFeature?(this.hideElement(this.skipContainer),g.track(c.tracking.ads.status.minimizeButtonPressed,{position:this.position}),m.sendMessage(c.message.minimizeAd)):(g.track(c.tracking.ads.status.manualSkipButtonPressed,{position:this.position}),this.internalSDK.skipAd(),t.currentTarget&&t.currentTarget.blur(),t.preventDefault()))},t.prototype.setupEvents=function(t){this.internalSDK=t,this.skipContainer.addEventListener(\"click\",this.skipAdCheck.bind(this))},t.prototype.hide=function(){window.clearTimeout(this.skipTimeout),window.clearInterval(this.skipCountdown),this.hideElement(this.containerDiv),this.hideElement(this.progressContainer),this.hideSkipButton(),this.hidePauseButton(),this.hideElement(this.startAdButton),this.containerDiv.classList.remove(\"pokiSdkOverlay\"),this.progressBar.style.width=\"0%\"},t.prototype.hideSpinner=function(){this.hideElement(this.spinnerContainer)},t.prototype.showWithOpacity=function(){this.showElement(this.spinnerContainer),this.showElement(this.containerDiv),this.showElement(this.progressContainer)},t.prototype.show=function(){this.containerDiv.classList.add(\"pokiSdkOverlay\"),this.showElement(this.containerDiv),this.showElement(this.progressContainer)},t.prototype.getVideoBounds=function(){return this.adContainer.getBoundingClientRect()},t.prototype.getAdContainer=function(){return this.adContainer},t.prototype.getVideoContainer=function(){return this.videoContainer},t.prototype.showPauseButton=function(){this.showElement(this.pauseButton),this.internalSDK&&this.pauseButton.addEventListener(\"click\",this.internalSDK.resumeAd.bind(this.internalSDK))},t.prototype.hidePauseButton=function(){this.hideElement(this.pauseButton),this.internalSDK&&this.pauseButton.removeEventListener(\"click\",this.internalSDK.resumeAd.bind(this.internalSDK))},t.prototype.showStartAdButton=function(){this.showElement(this.startAdButton),this.internalSDK&&this.startAdButton.addEventListener(\"click\",this.internalSDK.startAdClicked.bind(this.internalSDK))},t.prototype.hideStartAdButton=function(){this.hideElement(this.startAdButton),this.internalSDK&&this.startAdButton.removeEventListener(\"click\",this.internalSDK.startAdClicked.bind(this.internalSDK))},t.prototype.showSkipButton=function(){this.showElement(this.skipContainer)},t.prototype.hideSkipButton=function(){this.hideElement(this.skipContainer)},t.prototype.createElements=function(){if(this.containerDiv=document.createElement(\"div\"),this.countdownDiv=document.createElement(\"div\"),this.insideContainer=document.createElement(\"div\"),this.pauseButton=document.createElement(\"div\"),this.startAdButton=document.createElement(\"div\"),this.progressBar=document.createElement(\"div\"),this.progressContainer=document.createElement(\"div\"),this.skipContainer=document.createElement(\"div\"),this.spinnerContainer=document.createElement(\"div\"),this.adContainer=document.createElement(\"div\"),this.videoContainer=document.createElement(\"video\"),this.adContainer.id=\"pokiSDKAdContainer\",this.videoContainer.id=\"pokiSDKVideoContainer\",this.containerDiv.className=\"pokiSdkContainer\",this.countdownDiv.className=O,this.insideContainer.className=\"pokiSdkInsideContainer\",this.pauseButton.className=j,this.pauseButton.innerHTML=\"Tap anywhere to ▶️\",this.startAdButton.className=\"pokiSdkStartAdButton\",this.startAdButton.innerHTML=\"Tap anywhere to play ad\",this.progressBar.className=M,this.progressContainer.className=\"pokiSdkProgressContainer\",this.skipContainer.className=R,this.spinnerContainer.className=Z,this.adContainer.className=\"pokiSDKAdContainer\",this.videoContainer.className=\"pokiSdkVideoContainer\",this.spinnerContainer.innerHTML='\\n\\t\\t\\t<div id=\"new-progress-spinner\" style=\"z-index:10;position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale3d(0.5, 0.5, 0.5);\">\\n\\t\\t\\t\\t<div class=\"gwd-div-1v1s\" data-gwd-group=\"SpinnerGroup\">\\n\\t\\t\\t\\t\\t<img src=\"https://game-cdn.poki.com/loaders/v2/static/spinner/Sparkle_1.svg\" class=\"gwd-img-1653 gwd-gen-no02gwdanimation gwd-grp-13td\" data-gwd-grp-id=\"Sparkle_1\">\\n\\t\\t\\t\\t\\t<img src=\"https://game-cdn.poki.com/loaders/v2/static/spinner/Sparkle_2.svg\" class=\"gwd-img-alsm gwd-gen-4pvrgwdanimation gwd-grp-13td\" data-gwd-grp-id=\"Sparkle_2\">\\n\\t\\t\\t\\t\\t<img src=\"https://game-cdn.poki.com/loaders/v2/static/spinner/Sparkle_3.svg\" class=\"gwd-img-f0mu gwd-gen-kw40gwdanimation gwd-grp-13td\" data-gwd-grp-id=\"Sparkle_3\">\\n\\t\\t\\t\\t\\t<img src=\"https://game-cdn.poki.com/loaders/v2/static/spinner/Sparkle_4.svg\" class=\"gwd-img-1sr3 gwd-gen-2uv8gwdanimation gwd-grp-13td\" data-gwd-grp-id=\"Sparkle_4\">\\n\\t\\t\\t\\t\\t<img src=\"https://game-cdn.poki.com/loaders/v2/static/spinner/Sparkle_5.svg\" class=\"gwd-img-1ffn gwd-gen-1x97gwdanimation gwd-grp-13td\" data-gwd-grp-id=\"Sparkle_5\">\\n\\t\\t\\t\\t\\t<img src=\"https://game-cdn.poki.com/loaders/v2/static/spinner/Sparkle_6.svg\" class=\"gwd-img-16f3 gwd-gen-1i1egwdanimation gwd-grp-13td\" data-gwd-grp-id=\"Sparkle_6\">\\n\\t\\t\\t\\t\\t<img src=\"https://game-cdn.poki.com/loaders/v2/static/spinner/Sparkle_7.svg\" class=\"gwd-img-1rrs gwd-gen-1sapgwdanimation gwd-grp-13td\" data-gwd-grp-id=\"Sparkle_7\">\\n\\t\\t\\t\\t\\t<img src=\"https://game-cdn.poki.com/loaders/v2.0/static/hand_fingers_isolated.svg\" class=\"gwd-img-1dhi gwd-gen-5qotgwdanimation gwd-grp-13td\" data-gwd-grp-id=\"heart\">\\n\\t\\t\\t\\t\\t<img src=\"https://game-cdn.poki.com/loaders/v2/static/spinner/shadow_new_3.svg\" class=\"gwd-img-1izg gwd-gen-faadgwdanimation gwd-grp-13td\" data-gwd-grp-id=\"shadow_new_3\">\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</div>\\n\\t\\t',this.hide(),this.videoContainer.setAttribute(\"playsinline\",\"playsinline\"),this.videoContainer.setAttribute(\"muted\",\"muted\"),this.containerDiv.appendChild(this.insideContainer),this.containerDiv.appendChild(this.skipContainer),this.containerDiv.appendChild(this.spinnerContainer),this.insideContainer.appendChild(this.progressContainer),this.insideContainer.appendChild(this.videoContainer),this.insideContainer.appendChild(this.adContainer),this.containerDiv.appendChild(this.pauseButton),this.containerDiv.appendChild(this.startAdButton),this.progressContainer.appendChild(this.progressBar),this.wrapper.appendChild(this.containerDiv),this.skipContainer.appendChild(this.countdownDiv),this.wrapper===document.body)this.containerDiv.classList.add(\"pokiSdkFixed\");else{var t=window.getComputedStyle(this.wrapper).position;t&&-1!==[\"absolute\",\"fixed\",\"relative\"].indexOf(t)||(this.wrapper.style.position=\"relative\")}},t}(),H=!0,N={};var X=[\"AT\",\"BE\",\"BG\",\"HR\",\"CY\",\"CZ\",\"DK\",\"EE\",\"FI\",\"FR\",\"DE\",\"GR\",\"HU\",\"IE\",\"IT\",\"LV\",\"LT\",\"LU\",\"MT\",\"NL\",\"PL\",\"PT\",\"RO\",\"SK\",\"SI\",\"ES\",\"SE\",\"GB\",\"IS\",\"LI\",\"NO\"],Q=[\"US\"],U=[\"ZZ\"];function W(t){return U.includes(t)}\nvar V=function(t,n,e,i){return new(e||(e=Promise))((function(r,o){function a(t){try{d(i.next(t))}catch(t){o(t)}}\nfunction s(t){try{d(i.throw(t))}catch(t){o(t)}}\nfunction d(t){var n;t.done?r(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,s)}\nd((i=i.apply(t,n||[])).next())}))},q=function(t,n){var e,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(e)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(e=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}\nif(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}\nif(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}\nif(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}\nr[2]&&a.ops.pop(),a.trys.pop();continue}\no=n.call(t,a)}catch(t){o=[6,t],i=0}finally{e=r=0}\nif(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},K=function(){function t(){var t=this;this.bannerTimeout=null,this.allowedToPlayAd=!1,this.runningAd=!1,this.currentWidth=640,this.currentHeight=480,this.currentRequestIsMuted=!1,this.canWeAutoPlayWithSound=function(){return V(t,void 0,void 0,(function(){return q(this,(function(t){switch(t.label){case 0:if(!this.blankVideo)return[2,!1];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,this.blankVideo.play()];case 2:return t.sent(),[2,!0];case 3:return t.sent(),[2,!1];case 4:return[2]}}))}))},this.videoElement=document.getElementById(\"pokiSDKVideoContainer\"),this.adsManager=null,this.initAdDisplayContainer(),this.initBlankVideo(),this.initAdsLoader()}\nreturn t.prototype.initAdDisplayContainer=function(){this.adDisplayContainer||(this.adDisplayContainer=new google.ima.AdDisplayContainer(document.getElementById(\"pokiSDKAdContainer\"),this.videoElement))},t.prototype.initBlankVideo=function(){this.blankVideo=document.createElement(\"video\"),this.blankVideo.setAttribute(\"playsinline\",\"playsinline\");var t=document.createElement(\"source\");t.src=\"data:video/mp4;base64, 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\",this.blankVideo.appendChild(t)},t.prototype.initAdsLoader=function(){var t=this;this.adsLoader||(this.adsLoader=new google.ima.AdsLoader(this.adDisplayContainer),this.adsLoader.getSettings().setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.INSECURE),this.adsLoader.getSettings().setDisableCustomPlaybackForIOS10Plus(!0),this.adsLoader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,this.onAdsManagerLoaded,!1,this),this.adsLoader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,this.onAdError,!1,this),this.videoElement.addEventListener(\"onended\",(function(){return t.adsLoader.contentComplete()})))},t.prototype.requestAd=function(t){return V(this,void 0,void 0,(function(){var n;return q(this,(function(e){switch(e.label){case 0:return this.runningAd?[2]:(this.runningAd=!0,this.adDisplayContainer.initialize(),this.videoElement.src=\"\",(n=new google.ima.AdsRequest).adTagUrl=t,n.linearAdSlotWidth=this.currentWidth,n.linearAdSlotHeight=this.currentHeight,n.nonLinearAdSlotWidth=this.currentWidth,n.nonLinearAdSlotHeight=this.currentHeight,n.forceNonLinearFullSlot=!0,[4,this.canWeAutoPlayWithSound()]);case 1:return e.sent()?(n.setAdWillPlayMuted(!1),this.currentRequestIsMuted=!1):(n.setAdWillPlayMuted(!0),this.currentRequestIsMuted=!0),this.allowedToPlayAd=!0,this.adsLoader.requestAds(n),[2]}}))}))},t.prototype.resize=function(t,n,e){void 0===e&&(e=google.ima.ViewMode.NORMAL),this.currentWidth=t,this.currentHeight=n,this.adsManager&&this.adsManager.resize(t,n,e)},t.prototype.onAdsManagerLoaded=function(t){var n=new google.ima.AdsRenderingSettings;n.enablePreloading=!0,n.restoreCustomPlaybackStateOnAdBreakComplete=!0,this.adsManager=t.getAdsManager(this.videoElement,n),this.currentRequestIsMuted&&this.adsManager.setVolume(0),this.allowedToPlayAd?(this.attachAdEvents(),l.dispatchEvent(c.ads.ready)):this.tearDown()},t.prototype.startPlayback=function(){try{this.adsManager.init(this.currentWidth,this.currentHeight,google.ima.ViewMode.NORMAL),this.adsManager.start()}catch(t){this.videoElement.play()}},t.prototype.startIOSPlayback=function(){this.adsManager.start()},t.prototype.stopPlayback=function(){l.dispatchEvent(c.ads.stopped),this.tearDown()},t.prototype.resumeAd=function(){l.dispatchEvent(c.ads.video.resumed),this.adsManager&&this.adsManager.resume()},t.prototype.tearDown=function(){this.adsManager&&(this.adsManager.stop(),this.adsManager.destroy(),this.adsManager=null),null!==this.bannerTimeout&&(clearTimeout(this.bannerTimeout),this.bannerTimeout=null),this.adsLoader&&(this.adsLoader.contentComplete(),this.adsLoader.destroy(),this.adsLoader=null,this.initAdsLoader()),this.runningAd=!1},t.prototype.attachAdEvents=function(){var t=this,n=google.ima.AdEvent.Type;this.adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,this.onAdError,!1,this),[n.AD_PROGRESS,n.ALL_ADS_COMPLETED,n.CLICK,n.COMPLETE,n.IMPRESSION,n.PAUSED,n.SKIPPED,n.STARTED,n.USER_CLOSE].forEach((function(n){t.adsManager.addEventListener(n,t.onAdEvent,!1,t)}))},t.prototype.onAdEvent=function(t){var n=this,e=t.getAd();switch(t.type){case google.ima.AdEvent.Type.AD_PROGRESS:l.dispatchEvent(c.ads.video.progress,t.getAdData());break;case google.ima.AdEvent.Type.STARTED:t.remainingTime=this.adsManager.getRemainingTime(),t.remainingTime<=0&&(t.remainingTime=15),e.isLinear()||(this.bannerTimeout=window.setTimeout((function(){l.dispatchEvent(c.ads.completed,{rewardAllowed:!!t.rewardAllowed}),n.tearDown()}),1e3*(t.remainingTime+1))),l.dispatchEvent(c.ads.started,{remainingTime:1e3*(t.remainingTime||0),adId:e.getAdId(),adSystem:e.getAdSystem(),advertiserName:e.getAdvertiserName(),apiFramework:e.getApiFramework(),creativeAdId:e.getCreativeAdId(),creativeId:e.getCreativeId(),description:e.getDescription(),mediaUrl:e.getMediaUrl(),title:e.getTitle()});break;case google.ima.AdEvent.Type.COMPLETE:l.dispatchEvent(c.ads.completed,{rewardAllowed:!0}),this.tearDown();break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:case google.ima.AdEvent.Type.USER_CLOSE:this.tearDown();break;case google.ima.AdEvent.Type.PAUSED:this.adsManager.pause(),l.dispatchEvent(c.ads.video.paused);break;case google.ima.AdEvent.Type.CLICK:l.dispatchEvent(c.ads.video.clicked);break;case google.ima.AdEvent.Type.SKIPPED:l.dispatchEvent(c.ads.skipped),l.dispatchEvent(c.ads.completed),document.activeElement&&document.activeElement.blur();break;case google.ima.AdEvent.Type.IMPRESSION:l.dispatchEvent(c.ads.impression,{userValueIndicator:D(l.getDataAnnotations().position===c.ads.position.rewarded?\"rewarded\":\"video\")})}},t.prototype.onAdError=function(t){this.tearDown();var n=t.getError&&t.getError().toString()||\"Unknown\";l.dispatchEvent(c.ads.video.error,{message:n})},t.prototype.muteAd=function(){void 0!==this.adsManager&&null!=this.adsManager&&this.adsManager.setVolume(0)},t.prototype.isAdRunning=function(){return this.runningAd},t}(),J=function(t){return new Promise((function(n,e){var i=document.createElement(\"script\");i.type=\"text/javascript\",i.async=!0,i.src=t;var r=function(){i.readyState&&\"loaded\"!==i.readyState&&\"complete\"!==i.readyState||(n(),i.onload=null,i.onreadystatechange=null)};i.onload=r,i.onreadystatechange=r,i.onerror=e,document.head.appendChild(i)}))},Y=function(t,n,e,i){return new(e||(e=Promise))((function(r,o){function a(t){try{d(i.next(t))}catch(t){o(t)}}\nfunction s(t){try{d(i.throw(t))}catch(t){o(t)}}\nfunction d(t){var n;t.done?r(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,s)}\nd((i=i.apply(t,n||[])).next())}))},$=function(t,n){var e,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(e)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(e=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}\nif(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}\nif(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}\nif(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}\nr[2]&&a.ops.pop(),a.trys.pop();continue}\no=n.call(t,a)}catch(t){o=[6,t],i=0}finally{e=r=0}\nif(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}};var tt=function(){var t=window.location.pathname;\"/\"!==t[0]&&(t=\"/\"+t);var n=encodeURIComponent(window.location.protocol+\"//\"+window.location.host+t+window.location.search),e=encodeURIComponent(document.referrer);return fetch(\"https://devs-api.poki.comsa/gameinfo/@sdk?href=\"+n+\"&referrer=\"+e,{method:\"GET\",headers:{\"Content-Type\":\"text/plain\"}}).then((function(t){return Y(void 0,void 0,void 0,(function(){var n;return $(this,(function(e){switch(e.label){case 0:return t.status>=200&&t.status<400?[4,t.json()]:[3,2];case 1:return(n=e.sent()).game_id?[2,{gameId:n.game_id,adTiming:{preroll:n.ad_settings.preroll,timePerTry:n.ad_settings.time_per_try,timeBetweenAds:n.ad_settings.time_between_ads,startAdsAfter:n.ad_settings.start_ads_after}}]:[2,void 0];case 2:throw t}}))}))})).catch((function(t){return function(t){return Y(this,void 0,void 0,(function(){var n,e,i,r,o,a,s,d,c,u,l,A;return $(this,(function(m){switch(m.label){case 0:return m.trys.push([0,3,,4]),\"/\"!==(n=window.location.pathname)[0]&&(n=\"/\"+n),r=(i=JSON).stringify,o={c:\"sdk-p4d-error\",ve:7},a={k:\"error\"},d=(s=JSON).stringify,c={status:t.status},(u=t.json)?[4,t.json()]:[3,2];case 1:u=m.sent(),m.label=2;case 2:if(e=r.apply(i,[(o.d=[(a.v=d.apply(s,[(c.json=u,c.body=JSON.stringify({href:window.location.protocol+\"//\"+window.location.host+n+window.location.search}),c.name=t.name,c.message=t.message,c)]),a)],o)]),l=\"https://t.poki.iossss/l\",navigator.sendBeacon)navigator.sendBeacon(l,e);else try{(A=new XMLHttpRequest).open(\"POST\",l,!0),A.send(e)}catch(t){}\nreturn[3,4];case 3:return m.sent(),[3,4];case 4:return[2]}}))}))}(t)}))},nt=function(t,n,e,i){return new(e||(e=Promise))((function(r,o){function a(t){try{d(i.next(t))}catch(t){o(t)}}\nfunction s(t){try{d(i.throw(t))}catch(t){o(t)}}\nfunction d(t){var n;t.done?r(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,s)}\nd((i=i.apply(t,n||[])).next())}))},et=function(t,n){var e,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(e)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(e=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}\nif(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}\nif(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}\nif(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}\nr[2]&&a.ops.pop(),a.trys.pop();continue}\no=n.call(t,a)}catch(t){o=[6,t],i=0}finally{e=r=0}\nif(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}};function it(){return nt(this,void 0,Promise,(function(){var t;return et(this,(function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),[4,fetch(\"lng.txt\",{method:\"GET\",headers:{\"Content-Type\":\"text/plain\"}})];case 1:return[4,n.sent().json()];case 2:return[2,n.sent().ISO];case 3:return t=n.sent(),console.error(t),[2,\"ZZ\"];case 4:return[2]}}))}))}\nvar rt=e(67),ot=function(t,n,e,i){return new(e||(e=Promise))((function(r,o){function a(t){try{d(i.next(t))}catch(t){o(t)}}\nfunction s(t){try{d(i.throw(t))}catch(t){o(t)}}\nfunction d(t){var n;t.done?r(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,s)}\nd((i=i.apply(t,n||[])).next())}))},at=function(t,n){var e,i,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(e)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(e=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,i=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){a=0;continue}\nif(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){a.label=o[1];break}\nif(6===o[0]&&a.label<r[1]){a.label=r[1],r=o;break}\nif(r&&a.label<r[2]){a.label=r[2],a.ops.push(o);break}\nr[2]&&a.ops.pop(),a.trys.pop();continue}\no=n.call(t,a)}catch(t){o=[6,t],i=0}finally{e=r=0}\nif(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},st=!1,dt=function(){return ot(void 0,void 0,void 0,(function(){var t,n,e;return at(this,(function(i){switch(i.label){case 0:if(st)return[2];i.label=1;case 1:return i.trys.push([1,4,,5]),[4,fetch(\"./touchControllerConfig.json\")];case 2:return[4,i.sent().json()];case 3:return(t=i.sent())&&((n=document.createElement(\"script\")).src=\"//game-cdn.poki.com/scripts/touchOverlayController.js\",n.onload=function(){new window.OverlayController(document.body,t)},document.head.appendChild(n),st=!0),[3,5];case 4:return e=i.sent(),console.log(e),[3,5];case 5:return[2]}}))}))},ct=function(){return(ct=Object.assign||function(t){for(var n,e=1,i=arguments.length;e<i;e++)\nfor(var r in n=arguments[e])Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r]);return t}).apply(this,arguments)},ut={},lt={gameId:S(\"game_id\"),versionId:S(\"game_version_id\")},At=function(t){return \"poki-display-\"+t[0]+\"x\"+t[1]+\"-\"+document.body.querySelectorAll('[data-poki-ad-size=\"'+t.join(\"x\")+'\"] .poki-ad-slot').length},mt=function(){function t(){var n=this;this.autoStartOnReady=!1,this.criteria={},this.debug=!1,this.debugIsOverwritten=!1,this.handlers={},this.isInitialized=!1,this.programmaticAdsEnabled=!0,this.sdkBooted=!1,this.sdkImaError=!1,this.startAdEnabled=!1,this.startStartAdsAfterTimerOnInit=!1,this.initOptions={},this.adReady=!1,this.debugTouchOverlayController=!1,this.setPlayerAge=function(t){t&&function(t,n){if(H)try{localStorage.setItem(t,n)}catch(e){H=!1,N[t]=n}else N[t]=n}(\"playerAge\",t)},this.toggleNonPersonalized=function(n){t.nonPersonalized=n},this.setConsentString=function(n){t.consentString=n},this.sdkNotBootedButCalled=function(){console.error(\"The Poki SDK has not yet been initialized\")},this.defineSlot=function(t){var e=At(t.size),i=n.googletag.defineSlot(\"/21682198607/\"+t.id,t.size,e);return i.addService(n.googletag.pubads()),ut[e]=i,n.googletag.enableServices(),i}}\nreturn t.prototype.init=function(t){if(void 0===t&&(t={}),\"undefined\"!=typeof window){if(this.isInitialized)return console.error(\"Poki SDK has already been initialized\");var n=t.onReady,e=void 0===n?null:n,i=t.onAdblocked,r=void 0===i?null:i;return this.initOptions=t,e&&this.registerHandler(\"onReady\",e),r&&this.registerHandler(\"onAdblocked\",r),this.setupDefaultEvents(),g.setupDefaultEvents(),\"true\"===encodeURIComponent(S(\"lazy\")||\"\")?(console.debug(\"Init in Lazy mode\"),new Promise((function(t){return t()}))):(console.debug(\"Init in Normal mode\"),this.lazyLoadInit())}},t.prototype.lazyLoadInit=function(){var n=this,e=this.initOptions,i=e.adTagUrl,r=e.adTiming,o=void 0===r?{}:r,a=e.customCriteria,s=void 0===a?{}:a,d=e.debug,u=void 0!==d&&d,A=e.prebid,m=void 0===A?{}:A,p=e.waterfallRetries,f=e.wrapper,g=void 0===f?document.body:f,w=e.skipFeature,y=void 0!==w&&w,k=e.minimizeFeature,x=void 0!==k&&k,T=e.countdownStart,z=void 0===T?6:T,C=e.renderSkipButton,B=void 0!==C&&C,_=e.forceDisableHB,D=void 0!==_&&_,O=e.prebid3,j=void 0!==O&&O,M=parseInt(S(\"site_id\"),10)||0,R=rt.a;(5===M||j)&&(R=\"https://a.poki.com/prebid/prebid3.19.0.js\");var Z=J(R).then((function(){var t;t=m,window.pbjs=window.pbjs||{},window.pbjs.que=window.pbjs.que||[],window.pbjs.que.push((function(){window.pbjs.addAdUnits(t.adUnits||I),window.pbjs.setConfig(E(E({},P),t.config))}))})),G=ct({},h);i?(t.isPokiPlatform=!0,G=ct(ct({},G),{adTagUrl:i,customCriteria:s,adTiming:o})):t.isPokiPlatform=!1;var H=tt;(t.isPokiPlatform||this.debug)&&(H=function(){return Promise.resolve()}),window.addEventListener(\"resize\",this.resize.bind(this),!1),window.addEventListener(\"message\",this.onMessage.bind(this),!1);var N=S(\"pokiDebug\");return N?(this.setDebug(\"true\"===N),this.debugIsOverwritten=!0):this.setDebug(this.debug||u),this.debugTouchOverlayController&&(v()||b())&&dt(),Promise.all([H(),it(),J(\"https://imasdk.googleapis.comsa/js/sdkloader/ima3.js\"),J(\"https://securepubads.g.doubleclick.netsa/tag/js/gpt.js\"),Z]).catch((function(){l.dispatchEvent(c.adblocked)})).then((function(e){if(void 0!==e){var i=e[0],r=e[1],o=ct(ct({},G),{country:r});if(i){lt.gameId||(lt.gameId=i.gameId);[\"7fb1fd45-24ce-4ade-b5c4-9ee55ec99526\"].includes(lt.gameId)&&(v()||b())&&dt(),o.adTiming=i.adTiming,o.customCriteria=ct(ct({},o.customCriteria),{p4d_game_id:lt.gameId})}\nn.debug&&(o.adTiming.startAdsAfter=0),n.enableSettings(o),(y||x)&&t.isPokiPlatform?n.playerSkin=new F({wrapper:g,minimizeFeature:x,skipFeature:y,countdownStart:z,renderSkipButton:B}):t.GetIsSkipTestCountry()?n.playerSkin=new F({wrapper:g,minimizeFeature:!1,skipFeature:!0,countdownStart:6,renderSkipButton:!0}):n.playerSkin=new F({wrapper:g,minimizeFeature:!1,skipFeature:!1}),n.ima=new K,n.playerSkin.setupEvents(n),n.startStartAdsAfterTimerOnInit&&n.adTimings.startStartAdsAfterTimer(),n.waterfall=new L(n.ima,{timing:n.adTimings,totalRetries:p,adTagUrl:o.adTagUrl,siteID:M,disableHB:D}),n.googletag=window.googletag||{cmd:[]},n.isInitialized=!0,l.dispatchEvent(c.ready)}}))},t.prototype.requestAd=function(n){var e=this;void 0===n&&(n={});var i=function(){var i=n.autoStart,r=void 0===i||i,o=n.customCriteria,a=void 0===o?{}:o,s=n.onFinish,d=void 0===s?null:s,u=n.onStart,m=void 0===u?null:u,p=n.position,f=void 0===p?null:p,g=n.runOnPlatform,h=void 0!==g&&g,w=n.overwriteAdTag,y=void 0===w?void 0:w;if(l.clearAnnotations(),e.autoStartOnReady=!1!==r,d&&e.registerHandler(\"onFinish\",d),m&&e.registerHandler(\"onStart\",m),!e.sdkBooted)return l.dispatchEvent(c.ads.error,{message:\"Requesting ad on unbooted SDK\"}),void e.sdkNotBootedButCalled();if(e.sdkImaError)l.dispatchEvent(c.ads.error,{message:\"Adblocker has been detected\"});else{if((v()||b())&&f!==c.ads.position.rewarded)return l.dispatchEvent(c.ads.error,{reason:\"Interstitials are disabled on mobile\"});if(null===f||!A(f,c.ads.position))return console.error(\"POKI-SDK: Invalid position\");if(e.ima.isAdRunning()||e.waterfall.isRunning())return l.dispatchEvent(c.ads.busy);if(e.adReady)return l.dispatchEvent(c.ads.ready);if(f===c.ads.position.preroll&&!e.adTimings.prerollPossible())return l.dispatchEvent(c.ads.limit,{reason:c.info.messages.prerollLimit});if(f!==c.ads.position.rewarded&&!e.adTimings.requestPossible())return l.dispatchEvent(c.ads.limit,{reason:c.info.messages.timeLimit});var k=ct(ct(ct({},e.genericCriteria()),e.criteria),{position:f});(t.isPokiPlatform||f===c.ads.position.rewarded)&&(k=ct(ct({},k),a)),e.playerSkin.showWithOpacity(),e.resize(),e.playerSkin.setPosition(f),e.waterfall.start(k,f,y?[y]:[],h)}};this.isInitialized?i():this.lazyLoadInit().then(i)},t.prototype.runWaterfallChain=function(t){var n=this;void 0===t&&(t={});var e=function(){var e=t.customCriteria,i=void 0===e?{}:e,r=t.onFinish,o=void 0===r?null:r,a=t.onStart,s=void 0===a?null:a,d=t.overwriteAdTags,u=void 0===d?[]:d,m=t.position,p=void 0===m?null:m;if(l.clearAnnotations(),o&&n.registerHandler(\"onFinish\",o),s&&n.registerHandler(\"onStart\",s),!n.sdkBooted)return l.dispatchEvent(c.ads.error,{message:\"Requesting ad on unbooted SDK\"}),void n.sdkNotBootedButCalled();if(n.sdkImaError)l.dispatchEvent(c.ads.error,{message:\"Adblocker has been detected\"});else{if(null===p||!A(p,c.ads.position))return console.error(\"POKI-SDK: Invalid position\");if(n.ima.isAdRunning()||n.waterfall.isRunning())return l.dispatchEvent(c.ads.busy);if(n.adReady)return l.dispatchEvent(c.ads.ready);n.autoStartOnReady=!0,n.playerSkin.showWithOpacity(),n.resize(),n.playerSkin.setPosition(p),n.waterfall.start(i,p,u,!1)}};this.isInitialized?e():this.lazyLoadInit().then(e)},t.prototype.displayAd=function(t,n){var e=this,i=function(){if(n){if(!e.sdkBooted)return l.dispatchEvent(c.ads.displayError,{message:\"Requesting ad on unbooted SDK\"}),void e.sdkNotBootedButCalled();if(t)\nif(e.sdkImaError)l.dispatchEvent(c.ads.displayError,{message:\"Adblocker has been detected\"});else{var i=function(t,n){void 0===n&&(n=!1);if((v()||b()||[\"970x250\",\"300x250\",\"728x90\",\"160x600\"].includes(t))&&(!v()&&!b()||[\"320x50\"].includes(t))){var e=t.split(\"x\").map((function(t){return parseInt(t,10)}));if(n)return{id:\"debug-display/debug-display-\"+t,size:e};var i=\"desktop\";v()&&(i=\"mobile\"),b()&&(i=\"tablet\");var r=parseInt(S(\"site_id\"),10)||0;return{id:mt.GetIsPokiIFrame()?i+\"_ingame_\"+t+\"/\"+r+\"_\"+i+\"_ingame_\"+t:\"external_\"+i+\"_display_ingame/external_\"+i+\"_ingame_\"+t,size:e}}}(n,e.debug);if(!i)return l.dispatchEvent(c.ads.displayError,{reason:\"Display size \"+n+\" is not supported on this device\"});var r=ct(ct({},e.genericCriteria()),e.criteria);t.getAttribute(\"data-poki-ad-size\")&&(console.warn(\"Poki-SDK: Container already has a display ad in it. Destroying.\"),e.destroyAd(t)),e.googletag.cmd.push((function(){var t=e.defineSlot(i);t.clearTargeting(),Object.keys(r).forEach((function(n){t.setTargeting(n,r[n])}))})),e.googletag.cmd.push((function(){var n=document.createElement(\"div\");n.id=At(i.size),n.className=\"poki-ad-slot\",n.style.width=i.size[0]+\"px\",n.style.height=i.size[1]+\"px\",t.appendChild(n),t.setAttribute(\"data-poki-ad-size\",i.size.join(\"x\")),e.googletag.display(n.id)}))}\nelse l.dispatchEvent(c.ads.displayError,{message:\"Provided container does not exist\"})}else l.dispatchEvent(c.ads.displayError,{message:\"No ad size given, usage: displayAd(<container>, <size>)\"})};this.isInitialized?i():this.lazyLoadInit().then(i)},t.prototype.destroyAd=function(t){var n=this,e=function(){if(!n.sdkBooted)return l.dispatchEvent(c.ads.displayError,{message:\"Attempting destroyAd on unbooted SDK\"}),void n.sdkNotBootedButCalled();n.sdkImaError?l.dispatchEvent(c.ads.displayError,{message:\"Adblocker has been detected\"}):(t||(t=document.body),Array.from(t.getElementsByClassName(\"poki-ad-slot\")).filter((function(t){return ut[t.id]})).forEach((function(t){var e=ut[t.id];n.googletag.cmd.push((function(){t.parentElement&&t.parentElement.removeChild(t),n.googletag.destroySlots([e])}))})))};this.isInitialized?e():this.lazyLoadInit().then(e)},t.prototype.startStartAdsAfterTimer=function(){this.sdkBooted&&!this.sdkImaError?this.adTimings.startStartAdsAfterTimer():this.startStartAdsAfterTimerOnInit=!0},t.prototype.enableSettings=function(t){this.criteria=ct({},t.customCriteria),this.adTimings=new y(t.adTiming),this.country=t.country},t.prototype.togglePlayerAdvertisingConsent=function(t){if(t){var n,e=parseInt(function(t){if(!H)return N[t];try{return localStorage.getItem(t)}catch(n){return N[t]}}(\"playerAge\"),10)||0,i=this.country,r=(n=i,X.includes(n)),o=function(t){return Q.includes(t)}(i),a=W(i);(r||o||W)&&(r&&e<=12||o&&e<=16||a&&e<=16)?this.disableProgrammatic():this.enableProgrammatic()}else this.disableProgrammatic()},t.prototype.disableProgrammatic=function(){t.childDirected=!0,this.programmaticAdsEnabled=!1},t.prototype.enableProgrammatic=function(){t.childDirected=!1,this.programmaticAdsEnabled=!0},t.prototype.getProgrammaticAdsEnabled=function(){return this.programmaticAdsEnabled},t.prototype.setDebug=function(t){var n=this;this.debugIsOverwritten?t&&g.track(c.tracking.debugTrueInProduction):(g.setDebug(t),l.setDebug(t),this.waterfall?this.waterfall.setDebug(t):l.addEventListener(c.ready,(function(){n.waterfall&&n.waterfall.setDebug(t)})),this.debug=t)},t.prototype.resize=function(){var t=this;if(!this.sdkBooted)return this.sdkNotBootedButCalled();if(!this.sdkImaError){var n=this.playerSkin.getVideoBounds();0!==n.width&&0!==n.height?this.ima.resize(n.width,n.height):setTimeout((function(){t.resize()}),100)}},t.prototype.onMessage=function(t){if(\"string\"==typeof t.data.type)switch(t.data.type){case \"toggleNonPersonalized\":this.toggleNonPersonalized(!(!t.data.content||!t.data.content.nonPersonalized));break;case \"setPersonalizedADConsent\":this.toggleNonPersonalized(!(t.data.content&&t.data.content.consent)),this.setConsentString(t.data.content?t.data.content.consentString:\"\")}},t.prototype.startAd=function(){if(!this.sdkBooted)return this.sdkNotBootedButCalled();this.sdkImaError||(this.adReady?(this.playerSkin.show(),this.resize(),this.ima.startPlayback()):l.dispatchEvent(c.ads.error,{message:\"No ads ready to start\"}))},t.prototype.startAdClicked=function(){\"undefined\"!=typeof navigator&&/(iPad|iPhone|iPod)/gi.test(navigator.userAgent)&&this.startAdEnabled&&(this.startAdEnabled=!1,this.playerSkin.hideStartAdButton(),this.ima.startIOSPlayback())},t.prototype.stopAd=function(){if(!this.sdkBooted)return this.sdkNotBootedButCalled();this.sdkImaError||(this.waterfall.stopWaterfall(),this.ima.stopPlayback(),this.playerSkin.hide())},t.prototype.resumeAd=function(){if(!this.sdkBooted)return this.sdkNotBootedButCalled();this.sdkImaError||(this.playerSkin.hidePauseButton(),this.ima.resumeAd())},t.prototype.skipAd=function(){this.stopAd(),this.callHandler(\"onFinish\",{type:c.ads.completed,rewardAllowed:!0})},t.prototype.muteAd=function(){if(!this.sdkBooted)return this.sdkNotBootedButCalled();this.sdkImaError||this.ima.muteAd()},t.prototype.registerHandler=function(t,n){this.handlers[t]=n},t.prototype.callHandler=function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];\"function\"==typeof this.handlers[t]&&this.handlers[t](n)},t.prototype.setupDefaultEvents=function(){var t=this;l.addEventListener(c.ready,(function(){t.sdkBooted=!0,t.callHandler(\"onReady\")})),l.addEventListener(c.adblocked,(function(){t.sdkBooted=!0,t.sdkImaError=!0,t.callHandler(\"onAdblocked\")})),l.addEventListener(c.ads.ready,(function(){t.adReady=!0,t.autoStartOnReady&&t.startAd()})),l.addEventListener(c.ads.started,(function(){t.playerSkin.hideSpinner(),t.callHandler(\"onStart\",{type:c.ads.limit})})),l.addEventListener(c.ads.video.paused,(function(){t.playerSkin.showPauseButton()})),l.addEventListener(c.ads.limit,(function(){t.callHandler(\"onFinish\",{type:c.ads.limit,rewardAllowed:!1})})),l.addEventListener(c.ads.stopped,(function(){t.callHandler(\"onFinish\",{type:c.ads.stopped,rewardAllowed:!1})})),l.addEventListener(c.ads.error,(function(){t.callHandler(\"onFinish\",{type:c.ads.error,rewardAllowed:!1})})),l.addEventListener(c.ads.busy,(function(){t.callHandler(\"onFinish\",{type:c.ads.busy,rewardAllowed:!1})})),l.addEventListener(c.ads.completed,(function(n){t.callHandler(\"onFinish\",{type:c.ads.completed,rewardAllowed:!!n.rewardAllowed})})),[c.ads.limit,c.ads.stopped,c.ads.error,c.ads.busy,c.ads.completed,c.ads.pushedToPlatform].forEach((function(n){l.addEventListener(n,(function(){t.playerSkin&&t.playerSkin.hide(),t.adReady=!1}))}))},t.prototype.genericCriteria=function(){var t={},n=encodeURIComponent(S(\"tag\")||\"\"),e=encodeURIComponent(S(\"site_id\")||\"\"),i=encodeURIComponent(S(\"categories\")||\"\");return t.tag=n,t.tag_site=n+\"|\"+e,t.site_id=e,t.categories=i,n.includes(\"-exp-minimize-ads-c.\")?t.exp_min_video=1:n.includes(\"-exp-minimize-ads-1.\")?t.exp_min_video=2:n.includes(\"-exp-minimize-ads-2.\")?t.exp_min_video=3:n.includes(\"-exp-minimize-ads-3.\")&&(t.exp_min_video=4),this.programmaticAdsEnabled||(t.disable_programmatic=1),t},t.GetIsPokiPlatform=function(){return t.isPokiPlatform},t.GetIsPokiIFrame=function(){return(parseInt(S(\"site_id\"),10)||0)>0},t.GetIsMinimizeTestCountry=function(){var t=parseInt(S(\"site_id\"),10)||0,n=encodeURIComponent(S(\"tag\")||\"\"),e=v()||b();return 9===t&&(n.includes(\"-exp-minimize-ads-1.\")||n.includes(\"-exp-minimize-ads-2.\"))&&!e},t.GetIsSkipTestCountry=function(){var t=parseInt(S(\"site_id\"),10)||0,n=encodeURIComponent(S(\"tag\")||\"\"),e=v()||b();return 9===t&&n.includes(\"-exp-minimize-ads-3.\")&&!e},t.childDirected=!1,t.isPokiPlatform=!1,t.nonPersonalized=!1,t.consentString=\"\",t}(),pt=mt;function ft(t){switch(Object.prototype.toString.call(t)){case \"[object Error]\":case \"[object Exception]\":case \"[object DOMException]\":return!0;default:return t instanceof Error}}\nvar gt=document.location.hostname;gt.endsWith(\"poki-gdn.com\")&&(gt=\"poki-gdn.com\");var ht,wt=Date.now(),yt=(ht=new RegExp(\"poki_erruid\"+\"=([^;]+)(?:;|$)\").exec(document.cookie))?ht[1]:\"\";function kt(t){if(lt.gameId&<.versionId){if(!(Date.now()<wt)){yt||function(t,n,e){document.cookie=t+\"=\"+n+\"; path=/; max-age=\"+(e||63072e3)+\"; domain=\"+gt}(\"poki_erruid\",yt=Math.random().toString(36).substr(2,9));try{var n=JSON.stringify({gid:lt.gameId,vid:lt.versionId,ve:7,n:t.name,m:t.message,s:JSON.stringify(t.stack),ui:yt}),e=\"https://t.poki.io/ge\";if(navigator.sendBeacon)navigator.sendBeacon(e,n);else{var i=new XMLHttpRequest;i.open(\"POST\",e,!0),i.send(n)}\nwt=Date.now()+100}catch(t){console.error(t)}}}else console.log(t)}\nfunction vt(t){return \"function\"==typeof t}\nfunction bt(t,n){return Object.prototype.hasOwnProperty.call(t,n)}\nfunction St(t,n,e){if(null!=t){var i=t[n];i&&i.__poki__||(t[n]=e(i),t[n].__poki__=!0,t[n].__orig__=i)}}\nfunction Et(t){if(!vt(t))return t;try{if(t.__poki__)return t;if(t.__poki_wrapper__)return t.__poki_wrapper__}catch(n){return t}\nfunction n(){for(var n=[],e=arguments.length;e--;)n[e]=Et(arguments[e]);try{var i=t.apply(this,n);return window.pokiLastCatch=null,i}catch(t){throw window.pokiLastCatch=t,t}}\nfor(var e in t)bt(t,e)&&(n[e]=t[e]);return n.prototype=t.prototype,t.__poki_wrapper__=n,n.__poki__=!0,n.__orig__=t,n}\nfunction xt(t){return function(n,e){for(var i=new Array(arguments.length),r=0;r<i.length;++r)i[r]=arguments[r];var o=i[0];return vt(o)&&(i[0]=Et(o)),t.apply?t.apply(this,i):t(i[0],i[1])}}\nif(\"undefined\"!=typeof window){d.a.remoteFetching=!1,d.a.report.subscribe((function(t){if(\"Script error.\"===t.message&&window.pokiLastCatch){var n=window.pokiLastCatch;window.pokiLastCatch=null,d.a.report(n)}else kt(t)})),window.onunhandledrejection=function(t){ft(t.reason)?d.a.report(t.reason):kt({name:\"unhandledrejection\",message:JSON.stringify(t.reason)})};\"bd6bdd9e-33a9-11ea-a08a-acde48001122\"===lt.gameId&&([\"EventTarget\",\"Window\",\"Node\",\"ApplicationCache\",\"AudioTrackList\",\"ChannelMergerNode\",\"CryptoOperation\",\"EventSource\",\"FileReader\",\"HTMLUnknownElement\",\"IDBDatabase\",\"IDBRequest\",\"IDBTransaction\",\"KeyOperation\",\"MediaController\",\"MessagePort\",\"ModalWindow\",\"Notification\",\"SVGElementInstance\",\"Screen\",\"TextTrack\",\"TextTrackCue\",\"TextTrackList\",\"WebSocket\",\"WebSocketWorker\",\"Worker\",\"XMLHttpRequest\",\"XMLHttpRequestEventTarget\",\"XMLHttpRequestUpload\"].forEach((function(t){return n=t,void((e=window[n]&&window[n].prototype)&&e.hasOwnProperty&&e.hasOwnProperty(\"addEventListener\")&&(St(e,\"addEventListener\",(function(t){return function(n,e,i,r){try{e&&e.handleEvent&&(e.handleEvent=Et(e.handleEvent))}catch(t){}\nreturn t.call(this,n,Et(e),i,r)}})),St(e,\"removeEventListener\",(function(t){return function(n,e,i,r){try{e=e&&(e.__poki_wrapper__?e.__poki_wrapper__:e)}catch(t){}\nreturn t.call(this,n,e,i,r)}}))));var n,e})),St(window,\"setTimeout\",xt),St(window,\"setInterval\",xt),void 0!==window.requestAnimationFrame&&St(window,\"requestAnimationFrame\",(function(t){return function(n){return t(Et(n))}})))}\nvar Tt=function(){return(Tt=Object.assign||function(t){for(var n,e=1,i=arguments.length;e<i;e++)\nfor(var r in n=arguments[e])Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r]);return t}).apply(this,arguments)},zt=function(){function t(){var t=this;this.gameStarted=!1,this.SDK=new pt,this.init=function(n){return void 0===n&&(n={}),new Promise((function(e,i){n&&n.adTagUrl&&window&&(window.__InternalSDK=t.SDK,window.__Definitions=c),t.SDK.init(Tt({onReady:e,onAdblocked:i},n)),m.sendMessage(c.message.sdkDetails,{version:\"2.102.0\"})}))},this.initWithVideoHB=function(){return t.init()},this.gameLoadingProgress=function(){},this.gameLoadingStart=function(){g.track(c.tracking.screen.gameLoadingStarted)},this.gameLoadingFinished=function(){g.track(c.tracking.screen.gameLoadingFinished)},this.gameplayStart=function(){t.gameStarted||(t.gameStarted=!0,g.track(c.tracking.screen.firstRound),t.SDK.startStartAdsAfterTimer()),g.track(c.tracking.screen.gameplayStart)},this.gameInteractive=function(){g.track(c.tracking.screen.gameInteractive)},this.gameplayStop=function(){g.track(c.tracking.screen.gameplayStop)},this.roundStart=function(t){void 0===t&&(t=\"\"),t=String(t),g.track(c.tracking.screen.roundStart,{identifier:t})},this.roundEnd=function(t){void 0===t&&(t=\"\"),t=String(t),g.track(c.tracking.screen.roundEnd,{identifier:t})},this.customEvent=function(n,e,i){if(void 0===i&&(i={}),!n||!e)return t.error(\"customEvent\",\"customEvent needs at least a noun and a verb\");n=String(n),e=String(e),i=Tt({},i),g.track(c.tracking.custom,{eventNoun:n,eventVerb:e,eventData:i})},this.commercialBreak=function(){return new Promise((function(n){g.track(c.tracking.screen.commercialBreak);var e=t.gameStarted?c.ads.position.midroll:c.ads.position.preroll;pt.GetIsMinimizeTestCountry()?t.runPlatformVideo(e).then((function(){return n()})):t.SDK.requestAd({position:e,onFinish:n})}))},this.rewardedBreak=function(){return new Promise((function(n){g.track(c.tracking.screen.rewardedBreak),pt.GetIsMinimizeTestCountry()?t.runPlatformVideo(c.ads.position.rewarded).then(n):t.SDK.requestAd({position:c.ads.position.rewarded,onFinish:function(t){t.length>0?n(t[0].rewardAllowed):n(!1)}})}))},this.runPlatformVideo=function(n){return new Promise((function(e){if(\"undefined\"!=typeof window){var i=function(n){if(\"string\"==typeof n.data.type)switch(n.data.type){case \"videoAdResult\":window.removeEventListener(\"message\",i,!1),e(n.data.content&&n.data.content.rewardAllowed);break;case \"videoAdBlockedByPlatform\":t.SDK.runWaterfallChain({onFinish:function(t){var n=!1;t.length>0&&(n=t.pop().rewardAllowed),e(n)},position:n.data.content.position,overwriteAdTags:n.data.content.adTagUrls,customCriteria:n.data.content.criteria})}};window.addEventListener(\"message\",i,!1),t.SDK.requestAd({position:n,runOnPlatform:!0,onFinish:function(){return e(!1)}})}else e()}))},this.happyTime=function(n){void 0===n&&(n=1),((n=Number(n))<0||n>1)&&(n=Math.max(0,Math.min(1,n)),t.warning(\"happyTime\",\"Intensity should be a value between 0 and 1, adjusted to \"+n)),g.track(c.tracking.screen.happyTime,{intensity:n})},this.muteAd=function(){t.SDK.muteAd()},this.setPlayerAge=function(n){g.track(c.tracking.setPlayerAge,{age:n}),n&&t.SDK.setPlayerAge(n)},this.togglePlayerAdvertisingConsent=function(n){g.track(c.tracking.togglePlayerAdvertisingConsent,{didConsent:n}),t.SDK.togglePlayerAdvertisingConsent(n),m.sendMessage(c.message.toggleProgrammaticAds,{enabled:t.SDK.getProgrammaticAdsEnabled()})},this.logError=function(t){ft(t)?s.report(t):kt({name:\"logError\",message:JSON.stringify(t)})},this.sendHighscore=function(t){g.track(c.tracking.screen.sendHighscore,{score:t})},this.setDebugTouchOverlayController=function(n){t.SDK.debugTouchOverlayController=n},this.getLeaderboard=function(){return g.track(c.tracking.screen.getLeaderboard,{}),new Promise((function(t){var n=function(e){\"string\"==typeof e.data.type&&\"PokiLeaderboardMessage_receive\"===e.data.type&&(window.removeEventListener(\"message\",n),t(e.data.content))};window.addEventListener(\"message\",n,!1)}))},this.warning=function(t,n){console.warn(\"PokiSDK.\"+t+\": \"+n)},this.error=function(t,n){console.error(\"PokiSDK.\"+t+\": \"+n)}}\nreturn t.prototype.setDebug=function(t){void 0===t&&(t=!0),this.SDK.setDebug(t)},t.prototype.disableProgrammatic=function(){this.SDK.disableProgrammatic()},t.prototype.toggleNonPersonalized=function(t){void 0===t&&(t=!1),this.SDK.toggleNonPersonalized(t)},t.prototype.setConsentString=function(t){this.SDK.setConsentString(t)},t.prototype.displayAd=function(t,n){g.track(c.tracking.screen.displayAd,{size:n}),this.SDK.displayAd(t,n)},t.prototype.destroyAd=function(t){g.track(c.tracking.screen.destroyAd),this.SDK.destroyAd(t)},t}();window.PokiSDK=new zt}]);"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:06.808Z",
|
|
"time": 47.28099999988444,
|
|
"timings": {
|
|
"blocked": 16.374000000035913,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0.5810000000167639,
|
|
"receive": 30.325999999831765,
|
|
"_blocked_queueing": 9.712000000035914
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "sdkScript.onload",
|
|
"scriptId": "17",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/master-loader.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 1193
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "17",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/master-loader.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 1110
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "script",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:39 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "application/javascript"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "minify"
|
|
},
|
|
{
|
|
"name": "cf-polished",
|
|
"value": "origSize=45228"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "W/\"62b5ec41-b0ac\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:54:25 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=zTmfrYrKRJYQI7ODZnKrMiAdyJjZNIsxHzVdP1AITVXZiMLY9U620DAyZO9atSsU4cgl5%2BC1qjcHBqdECBA%2FnWP5uH%2FmvGRown2%2FebrPPGG0nUwWZZqSFNlJkFCQYhDHwKS%2FTEeySkZyW0bIhkDnVoFoPNg%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf25df36826e-IAD"
|
|
},
|
|
{
|
|
"name": "content-encoding",
|
|
"value": "br"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 31155,
|
|
"mimeType": "application/javascript",
|
|
"text": "!function(n){function e(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return n[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}\nvar t={};e.m=n,e.c=t,e.d=function(n,t,o){e.o(n,t)||Object.defineProperty(n,t,{configurable:!1,enumerable:!0,get:o})},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,\"a\",t),t},e.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},e.p=\"\",e(e.s=2)}([function(n,e,t){\"use strict\";var o={loader:\"unity\",maxRatio:16/9,minRatio:9/16,thumbnail:\"https://i.poki.com/q80,w100,h100,g29251,Default.jpg\",numScreenshots:4,commentChangeTime:5e3,spinnerRemoveDelay:1e3,fullImageMaxWidth:.6,fullImageMaxHeight:.7,smallImageSizeOfFullImage:.8,animationTargetSizeOfSmallImage:.5,transitionDuration:.5,slideshowInterval:5};window.config.title||console.error(new Error(\"No title on window.config\"));var i=Object.assign(o,window.config);e.a=i},function(n,e,t){\"use strict\";function o(n,e,t,o,i,r,a){try{var s=n[r](a),c=s.value}catch(n){return void t(n)}\ns.done?e(c):Promise.resolve(c).then(o,i)}\nfunction i(n){return function(){var e=this,t=arguments;return new Promise(function(i,r){function a(n){o(c,i,r,a,s,\"next\",n)}\nfunction s(n){o(c,i,r,a,s,\"throw\",n)}\nvar c=n.apply(e,t);a(void 0)})}}\nfunction r(){return a.apply(this,arguments)}\nfunction a(){return a=i(x.a.mark(function n(){var e,t,o,i,r,a,c;return x.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return m=document.getElementById(\"slideshow\"),p=document.getElementById(\"slideshow-top\"),g=document.getElementById(\"slideshow-nav\"),w=document.getElementById(\"slideshow-images\"),p.className=\"active\",n.prev=5,n.next=8,f(\"\".concat(B,\"screenshots/1-small.jpg\").concat(I));case 8:e=n.sent,n.next=16;break;case 11:return n.prev=11,n.t0=n.catch(5),n.next=15,f(\"\".concat(B,\"screenshots/1.jpg\").concat(I));case 15:e=n.sent;case 16:for(t=h(),t.className=\"\".concat(L,\" middle\"),t.setAttribute(\"fullImageLoaded\",!0),t.setAttribute(\"data-idx\",0),t.appendChild(e),w.appendChild(t),m.className=\"active\",v=e.width/e.height,y=document.createElement(\"style\"),u(),document.body.appendChild(y),window.addEventListener(\"resize\",u),o=0;o<=S.a.numScreenshots-1;o++)i=document.createElement(\"div\"),i.className=\"bullet\".concat(0===o?\" active\":\"\"),i.setAttribute(\"data-idx\",o),g.appendChild(i);return n.next=31,f(\"\".concat(B,\"screenshots/1.jpg\").concat(I));case 31:for(r=n.sent,t.querySelector(\"img\").src=r.src,a=function(n){var e=h(),t=new Image;t.src=\"\".concat(B,\"screenshots/\").concat(n+1,\"-small.jpg\").concat(I),e.appendChild(t),e.setAttribute(\"data-idx\",n),1===n?e.className=\"\".concat(L,\" right\"):n===S.a.numScreenshots-1?e.className=\"\".concat(L,\" left\"):e.className=\"\".concat(L,\" inactive\"),w.appendChild(e)},c=1;c<=S.a.numScreenshots-1;c++)a(c);s();case 36:case \"end\":return n.stop()}},n,null,[[5,11]])})),a.apply(this,arguments)}\nfunction s(){return c.apply(this,arguments)}\nfunction c(){return c=i(x.a.mark(function n(){var e,t,o,i,r,a;return x.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(e=1e3*S.a.slideshowInterval,t=w.querySelector(\"#slideshow-images .right\"),o=t.getAttribute(\"data-idx\")<<0,t.getAttribute(\"fullImageLoaded\")){n.next=16;break}\nreturn i=Date.now(),n.next=7,f(\"\".concat(B,\"screenshots/\").concat(o+1,\".jpg\").concat(I));case 7:r=n.sent,t.querySelector(\"img\").src=r.src,t.setAttribute(\"fullImageLoaded\",!0),clearTimeout(window.slideShowMoveTransitionID),clearTimeout(window.slideShowTimeoutID),a=Date.now()-i,a>e?l():window.slideShowTimeoutID=window.setTimeout(l,e-a),n.next=19;break;case 16:clearTimeout(window.slideShowMoveTransitionID),clearTimeout(window.slideShowTimeoutID),window.slideShowTimeoutID=window.setTimeout(l,e);case 19:case \"end\":return n.stop()}},n)})),c.apply(this,arguments)}\nfunction l(){if(!E){var n=k+1;n>S.a.numScreenshots-1&&(n=0),d(n)}}\nfunction d(n){k=n<<0;var e=k>0?k-1:S.a.numScreenshots-1,t=k<S.a.numScreenshots-1?k+1:0;w.querySelectorAll(\".image\").forEach(function(n){n.className===\"\".concat(L,\" left\")&&(n.className=\"\".concat(L,\" fromLeft\")),n.className===\"\".concat(L,\" right\")&&(n.className=\"\".concat(L,\" fromRight\")),-1===n.className.indexOf(\"inactive\")&&(n.className+=\" inactive\")}),w.querySelector('[data-idx=\"'.concat(k,'\"]')).className=\"\".concat(L,\" middle\"),w.querySelector('[data-idx=\"'.concat(e,'\"]')).className=\"\".concat(L,\" left\"),w.querySelector('[data-idx=\"'.concat(t,'\"]')).className=\"\".concat(L,\" right\"),g.querySelectorAll(\".bullet\").forEach(function(n,e){n.className=\"bullet\",e===k&&(n.className+=\" active\")}),window.slideShowMoveTransitionID=window.setTimeout(function(){w.querySelectorAll(\".inactive\").forEach(function(n){n.className=\"\".concat(L,\" inactive fromRight\")})},1e3*S.a.transitionDuration),s()}\nfunction u(){var n=window.innerWidth/window.innerHeight,e=S.a.fullImageMaxWidth/v*n,t=S.a.fullImageMaxWidth;e>S.a.fullImageMaxHeight&&(e=S.a.fullImageMaxHeight,t=e*v/n);var o=t*S.a.smallImageSizeOfFullImage,i=.5-t/2,r=t*S.a.animationTargetSizeOfSmallImage,a=-2*r,s=1+r,c=(1-t)/4-t/2,l=.5-.5*t-(o+t)/2,d=1-(1-t)/4-t/2,u=.5+.5*o,f=Math.min(c,l),h=Math.max(d,u);y.innerHTML=\"\\n\\t\\t#slideshow-images {\\n\\t\\t\\theight: \".concat(100*e,\"vh;\\n\\t\\t}\\n\\t\\t#slideshow-images .image {\\n\\t\\t\\ttransition-duration: \").concat(S.a.transitionDuration,\"s;\\n\\t\\t\\twidth: \").concat(100*t,\"vw;\\n\\t\\t\\theight: \").concat(100*e,\"vh;\\n\\t\\t}\\n\\t\\t#slideshow-images .middle {\\n\\t\\t\\ttransform: translateX(\").concat(100*i,\"vw);\\n\\t\\t}\\n\\t\\t#slideshow-images .left {\\n\\t\\t\\ttransform: translateX(\").concat(100*f,\"vw) scale(\").concat(S.a.smallImageSizeOfFullImage,\");\\n\\t\\t}\\n\\t\\t#slideshow-images .right {\\n\\t\\t\\ttransform: translateX(\").concat(100*h,\"vw) scale(\").concat(S.a.smallImageSizeOfFullImage,\");\\n\\t\\t}\\n\\t\\t#slideshow-images .inactive.fromLeft {\\n\\t\\t\\ttransform: translateX(\").concat(100*a,\"vw) scale(\").concat(S.a.smallImageSizeOfFullImage*S.a.animationTargetSizeOfSmallImage,\");\\n\\t\\t}\\n\\t\\t#slideshow-images .inactive.fromRight {\\n\\t\\t\\ttransform: translateX(\").concat(100*s,\"vw) scale(\").concat(S.a.smallImageSizeOfFullImage*S.a.animationTargetSizeOfSmallImage,\");\\n\\t\\t}\\n\\t\")}\nfunction f(n){return new Promise(function(e,t){var o=new Image;o.addEventListener(\"load\",function(){return e(o)}),o.addEventListener(\"error\",function(n){o.src.indexOf(\".jpg\")>0?o.src=o.src.replace(\".jpg\",\".png\"):t(n)}),o.src=n})}\nfunction h(){var n=document.createElement(\"div\");return n.className=L,n}\ne.a=r;var m,p,g,w,v,y,b=t(10),x=t.n(b),S=t(0),L=\"image\",k=0,E=!1,I=S.a.screenshotsVersion?\"?v\".concat(S.a.screenshotsVersion):\"\",C=window.location.pathname.substring(0,window.location.pathname.lastIndexOf(\"/\")),T=window.location.hostname.endsWith(\"game-cdn.poki.com\")||window.location.hostname.endsWith(\".poki-gdn.com\"),B=T?\"/cdn-cgi/image/f=auto,quality=78\".concat(C,\"/\"):\"\";window.navigateNext=l,window.removeSlideshowEventListeners=function(){E=!0}},function(n,e,t){n.exports=t(3)},function(n,e,t){\"use strict\";function o(n){var e=document.createElement(\"div\");return e.id=n,e}\nObject.defineProperty(e,\"__esModule\",{value:!0});var i=t(4),r=(t.n(i),t(0)),a=(t(9),t(1),t(11)),s=(t.n(a),o(\"loader\")),c=o(\"slideshow\"),l=o(\"slideshow-top\"),d=document.createElement(\"img\");var u=o(\"slideshow-top-container\"),f=o(\"game-title\");f.innerText=r.a.title;var h=o(\"progress-spinner\");h.innerHTML='<div class=\"bounce0\"></div><div class=\"bounce1\"></div><div class=\"bounce2\">',h.setAttribute(\"class\",\"spinner\");var m=o(\"progress-container\"),p=o(\"progress-bar\"),g=o(\"progress-fill\");g.style.width=\"0%\";var w=o(\"progress-amount\");w.innerText=\"0%\";var v=o(\"progress-comment\");v.innerText=\"Loading\";var y=o(\"slideshow-images\"),b=o(\"slideshow-nav\"),x=o(\"game-container\"),S=o(\"game\");s.appendChild(c),c.appendChild(l),c.appendChild(y),c.appendChild(b),l.appendChild(d),l.appendChild(u),u.appendChild(f),u.appendChild(h),u.appendChild(m),m.appendChild(p),m.appendChild(w),u.appendChild(v),p.appendChild(g),x.appendChild(S),document.body.appendChild(s),document.body.appendChild(x)},function(n,e,t){var o=t(5);\"string\"==typeof o&&(o=[[n.i,o,\"\"]]);var i={hmr:!0};i.transform=void 0,i.insertInto=void 0;t(7)(o,i);o.locals&&(n.exports=o.locals)},function(n,e,t){e=n.exports=t(6)(!1),e.push([n.i,\"* {\\n margin: 0;\\n padding: 0;\\n}\\n\\nhtml,\\nbody {\\n width: 100vw;\\n height: 100vh;\\n overflow: hidden;\\n background: #002B50;\\n font-family: Torus, Arial, Helvetica, sans-serif;\\n color: #fff;\\n}\\n\\n#game-container {\\n position: absolute !important;\\n left: 50%;\\n top: 50%;\\n display: none;\\n}\\n\\n#game,\\n#game canvas {\\n width: 100%;\\n height: 100%;\\n}\\n\\n#loader {\\n width: 100%;\\n height: 100%;\\n}\\n\\n/**\\n * Slideshow\\n */\\n\\n#slideshow {\\n width: 100%;\\n height: 100%;\\n flex-direction: column;\\n align-items: center;\\n justify-content: space-evenly;\\n display: flex;\\n user-select: none;\\n}\\n\\n@font-face {\\n font-family: Torus;\\n src:\\n url('//a.poki.com/fonts/torus-bold-webfont.woff2') format('woff2'),\\n url('//a.poki.com/fonts/torus-bold-webfont.woff') format('woff');\\n font-style: bold;\\n font-weight: 700;\\n}\\n\\n/**\\n * Slideshow - Top section\\n */\\n#progress-spinner{\\n margin-left: 0;\\n margin-top: 0;\\n left: 0px;\\n display:none;\\n transform: translate(100%, -50%);\\n width:10vh;\\n}\\n#progress-spinner >div{\\n width:2vh;\\n height:2vh;\\n}\\n#thumbnail {\\n box-shadow: 0 1vh 2vh rgba(0, 0, 0, 0.4);\\n /* box-shadow: 0 6px 12px rgba(0, 0, 0, 0.24); */\\n border-radius: 16.667%;\\n}\\n\\n#slideshow-top {\\n display: flex;\\n margin: 2.5vh 0;\\n}\\n\\n#slideshow-top-container {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n flex-grow: 1;\\n}\\n\\n#game-title, #progress-comment {\\n display: flex;\\n flex-grow: 1;\\n align-items: center;\\n font-size:2vh;\\n}\\n\\n#progress-container {\\n display: flex;\\n align-items: center;\\n flex-grow: 1;\\n transition: 0.2s ease-out all;\\n}\\n\\n#progress-container.done {\\n opacity: 0;\\n}\\n\\n#progress-bar {\\n background: #fff;\\n width: 100%;\\n overflow: hidden;\\n}\\n\\n#progress-fill {\\n background: #3CF7DC;\\n height: 100%;\\n transition: 0.2s ease-out all;\\n animation-name: fillColor;\\n animation-duration: 3.5s;\\n animation-iteration-count: infinite;\\n animation-fill-mode: both;\\n}\\n\\n@keyframes fillColor {\\n 0% {\\n background-color: #3CF7DC;\\n }\\n\\n 25% {\\n background-color: #FFA9BE;\\n }\\n\\n 50% {\\n background-color: #FFDC00;\\n }\\n\\n 75% {\\n background-color: #E0AEF5;\\n }\\n\\n 100% {\\n background-color: #3CF7DC;\\n }\\n}\\n\\n@media (orientation: portrait) {\\n #thumbnail {\\n margin-right: 2.4vh;\\n }\\n\\n #game-title h1 {\\n font-size: 2vh;\\n }\\n\\n #slideshow-top {\\n width: 70vw;\\n }\\n\\n #progress-bar {\\n height: 1vh;\\n border-radius: 0.5vh;\\n }\\n\\n #progress-fill {\\n border-radius: 0.5vh;\\n }\\n\\n #thumbnail {\\n width: 5vh;\\n height: 5vh;\\n }\\n\\n #progress-amount {\\n font-size: 2vh;\\n margin-left: 1.5vh;\\n width: 3vh;\\n }\\n}\\n\\n@media (orientation: landscape) {\\n #thumbnail {\\n margin-right: 3vh;\\n }\\n\\n #game-title h1 {\\n font-size: 3vh;\\n }\\n\\n #slideshow-top {\\n width: 50vw;\\n }\\n\\n #progress-bar {\\n height: 1.2vh;\\n border-radius: 0.6vh;\\n }\\n\\n #progress-fill {\\n border-radius: 0.6vh;\\n }\\n\\n #thumbnail {\\n width: 7.5vh;\\n height: 7.5vh;\\n }\\n\\n #progress-amount {\\n font-size: 2.5vh;\\n margin-left: 1.875vh;\\n width: 3.75vh;\\n }\\n}\\n\\n/**\\n * Slideshow - Images section\\n */\\n\\n#slideshow-images {\\n width: 100vw;\\n display: flex;\\n justify-content: center;\\n}\\n\\n#slideshow-images .image {\\n position: absolute;\\n box-shadow: 0 2.4vh 3.6vh rgba(0, 0, 0, 0.4);\\n transition-property: transform;\\n transition-timing-function: ease-in-out;\\n perspective: 1000px;\\n left: 0;\\n overflow: hidden;\\n /* border: 1vh solid; */\\n}\\n\\n#slideshow-images .image img {\\n width: 100%;\\n height: 100%;\\n}\\n\\n#slideshow-images .image:nth-of-type(1n) {\\n border-color: #3BE8B0;\\n}\\n\\n#slideshow-images .image:nth-of-type(2n) {\\n border-color: #FF6D92;\\n}\\n\\n#slideshow-images .image:nth-of-type(3n) {\\n border-color: #A177FF;\\n}\\n\\n#slideshow-images .image:nth-of-type(4n) {\\n border-color: #FFD200;\\n}\\n\\n#slideshow-images .left {\\n z-index: 2;\\n}\\n#slideshow-images .right {\\n z-index: 1;\\n}\\n\\n#slideshow-images .middle {\\n z-index: 3;\\n}\\n\\n#slideshow-images .left img,\\n#slideshow-images .right img {\\n transform: scale(1.05);\\n}\\n\\n#slideshow-images .left img,\\n#slideshow-images .right img,\\n#slideshow-images .fromLeft img,\\n#slideshow-images .fromRight img {\\n filter: blur(1vh);\\n}\\n\\n#slideshow-images .inactive {\\n display: none;\\n}\\n\\n#slideshow-images .inactive.fromLeft,\\n#slideshow-images .inactive.fromRight {\\n display: block;\\n}\\n\\n/**\\n * Slideshow - Navigation section\\n */\\n\\n#slideshow-nav {\\n display: flex;\\n justify-content: center;\\n margin: 2.5vh 0;\\n}\\n\\n#slideshow-nav .bullet {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n#slideshow-nav .bullet:after {\\n content: '';\\n background: #fff;\\n border-radius: 0.4vh;\\n width: 0.8vh;\\n height: 0.8vh;\\n}\\n\\n#slideshow-nav .bullet.active:after {\\n background: #009CFF;\\n}\\n\\n#slideshow-nav .bullet {\\n width: 2.5vh;\\n height: 2.5vh;\\n}\\n\\n#slideshow-nav .bullet:after {\\n border-radius: 50%;\\n width: 50%;\\n height: 50%;\\n}\\n\\n/**\\n * Pop-in animation\\n */\\n\\n#slideshow-nav,\\n#slideshow-images {\\n opacity: 0;\\n transition: 0.4s all ease-out;\\n transform: translateY(2vh);\\n perspective: 1000px;\\n transition-delay: 400ms;\\n}\\n\\n#slideshow-nav {\\n transition-delay: 600ms;\\n}\\n\\n#slideshow.active #slideshow-images,\\n#slideshow.active #slideshow-nav {\\n opacity: 1;\\n transform: translateY(0);\\n}\\n\\n@keyframes bounceInDown {\\n\\n from,\\n 60%,\\n 75%,\\n 90%,\\n to {\\n animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\\n }\\n\\n 0% {\\n transform: translate3d(0, -100vh, 0);\\n }\\n\\n 40% {\\n transform: translate3d(0, 0.5vh, 0);\\n }\\n\\n 65% {\\n transform: translate3d(0, -0.2vh, 0);\\n }\\n\\n 80% {\\n transform: translate3d(0, 0.1vh, 0);\\n }\\n\\n to {\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n\\n#slideshow-top {\\n transform: translate3d(0, -20vh, 0);\\n opacity: 0;\\n}\\n\\n#slideshow-top.active {\\n opacity: 1;\\n transform: translate3d(0, 0, 0);\\n animation-name: bounceInDown;\\n animation-duration: 0.5s;\\n}\\n\\n/**\\n * Loading dots\\n */\\n.spinner {\\n position: relative;\\n left: -9999px;\\n animation: dot-pulse 1.5s infinite linear;\\n animation-delay: .25s;\\n transform:translate(50vw, 50vh) translate(-130%, -130%);\\n }\\n\\n .spinner:before, .spinner:after {\\n content: '';\\n display: inline-block;\\n position: absolute;\\n top: 0;\\n width: 10px;\\n height: 10px;\\n border-radius: 5px;\\n }\\n .spinner, .spinner:before, .spinner:after{\\n width: 10px;\\n height: 10px;\\n border-radius: 5px;\\n }\\n\\n .spinner:before {\\n animation: dot-pulse 1.5s infinite linear;\\n animation-delay: 0s;\\n left:-20px;\\n }\\n\\n .spinner:after {\\n animation: dot-pulse 1.5s infinite linear;\\n animation-delay: .5s;\\n left:20px;\\n }\\n\\n @keyframes dot-pulse {\\n 0% {\\n box-shadow: 9999px 0 0 -5px #FFF;\\n }\\n 30% {\\n box-shadow: 9999px 0 0 2px #FFF;\\n }\\n 60%,\\n 100% {\\n box-shadow: 9999px 0 0 -5px #FFF;\\n }\\n }\\n\",\"\"])},function(n,e,t){\"use strict\";function o(n,e){var t=n[1]||\"\",o=n[3];if(!o)return t;if(e&&\"function\"==typeof btoa){var r=i(o);return[t].concat(o.sources.map(function(n){return \"/*# sourceURL=\"+o.sourceRoot+n+\" */\"})).concat([r]).join(\"\\n\")}\nreturn[t].join(\"\\n\")}\nfunction i(n){return \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+\" */\"}\nn.exports=function(n){var e=[];return e.toString=function(){return this.map(function(e){var t=o(e,n);return e[2]?\"@media \"+e[2]+\"{\"+t+\"}\":t}).join(\"\")},e.i=function(n,t){\"string\"==typeof n&&(n=[[null,n,\"\"]]);for(var o={},i=0;i<this.length;i++){var r=this[i][0];null!=r&&(o[r]=!0)}\nfor(i=0;i<n.length;i++){var a=n[i];null!=a[0]&&o[a[0]]||(t&&!a[2]?a[2]=t:t&&(a[2]=\"(\"+a[2]+\") and (\"+t+\")\"),e.push(a))}},e}},function(n,e,t){function o(n,e){for(var t=0;t<n.length;t++){var o=n[t],i=p[o.id];if(i){i.refs++;for(var r=0;r<i.parts.length;r++)i.parts[r](o.parts[r]);for(;r<o.parts.length;r++)i.parts.push(u(o.parts[r],e))}else{for(var a=[],r=0;r<o.parts.length;r++)a.push(u(o.parts[r],e));p[o.id]={id:o.id,refs:1,parts:a}}}}\nfunction i(n,e){for(var t=[],o={},i=0;i<n.length;i++){var r=n[i],a=e.base?r[0]+e.base:r[0],s=r[1],c=r[2],l=r[3],d={css:s,media:c,sourceMap:l};o[a]?o[a].parts.push(d):t.push(o[a]={id:a,parts:[d]})}\nreturn t}\nfunction r(n,e){var t=v(n.insertInto);if(!t)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");var o=x[x.length-1];if(\"top\"===n.insertAt)o?o.nextSibling?t.insertBefore(e,o.nextSibling):t.appendChild(e):t.insertBefore(e,t.firstChild),x.push(e);else if(\"bottom\"===n.insertAt)t.appendChild(e);else{if(\"object\"!=typeof n.insertAt||!n.insertAt.before)throw new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");var i=v(n.insertAt.before,t);t.insertBefore(e,i)}}\nfunction a(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n);var e=x.indexOf(n);e>=0&&x.splice(e,1)}\nfunction s(n){var e=document.createElement(\"style\");if(void 0===n.attrs.type&&(n.attrs.type=\"text/css\"),void 0===n.attrs.nonce){var t=d();t&&(n.attrs.nonce=t)}\nreturn l(e,n.attrs),r(n,e),e}\nfunction c(n){var e=document.createElement(\"link\");return void 0===n.attrs.type&&(n.attrs.type=\"text/css\"),n.attrs.rel=\"stylesheet\",l(e,n.attrs),r(n,e),e}\nfunction l(n,e){Object.keys(e).forEach(function(t){n.setAttribute(t,e[t])})}\nfunction d(){return t.nc}\nfunction u(n,e){var t,o,i,r;if(e.transform&&n.css){if(!(r=\"function\"==typeof e.transform?e.transform(n.css):e.transform.default(n.css)))return function(){};n.css=r}\nif(e.singleton){var l=b++;t=y||(y=s(e)),o=f.bind(null,t,l,!1),i=f.bind(null,t,l,!0)}else n.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(t=c(e),o=m.bind(null,t,e),i=function(){a(t),t.href&&URL.revokeObjectURL(t.href)}):(t=s(e),o=h.bind(null,t),i=function(){a(t)});return o(n),function(e){if(e){if(e.css===n.css&&e.media===n.media&&e.sourceMap===n.sourceMap)return;o(n=e)}else i()}}\nfunction f(n,e,t,o){var i=t?\"\":o.css;if(n.styleSheet)n.styleSheet.cssText=L(e,i);else{var r=document.createTextNode(i),a=n.childNodes;a[e]&&n.removeChild(a[e]),a.length?n.insertBefore(r,a[e]):n.appendChild(r)}}\nfunction h(n,e){var t=e.css,o=e.media;if(o&&n.setAttribute(\"media\",o),n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}\nfunction m(n,e,t){var o=t.css,i=t.sourceMap,r=void 0===e.convertToAbsoluteUrls&&i;(e.convertToAbsoluteUrls||r)&&(o=S(o)),i&&(o+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+\" */\");var a=new Blob([o],{type:\"text/css\"}),s=n.href;n.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}\nvar p={},g=function(n){var e;return function(){return void 0===e&&(e=n.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),w=function(n,e){return e?e.querySelector(n):document.querySelector(n)},v=function(n){var e={};return function(n,t){if(\"function\"==typeof n)return n();if(void 0===e[n]){var o=w.call(this,n,t);if(window.HTMLIFrameElement&&o instanceof window.HTMLIFrameElement)try{o=o.contentDocument.head}catch(n){o=null}\ne[n]=o}\nreturn e[n]}}(),y=null,b=0,x=[],S=t(8);n.exports=function(n,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");e=e||{},e.attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=g()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var t=i(n,e);return o(t,e),function(n){for(var r=[],a=0;a<t.length;a++){var s=t[a],c=p[s.id];c.refs--,r.push(c)}\nif(n){o(i(n,e),e)}\nfor(var a=0;a<r.length;a++){var c=r[a];if(0===c.refs){for(var l=0;l<c.parts.length;l++)c.parts[l]();delete p[c.id]}}}};var L=function(){var n=[];return function(e,t){return n[e]=t,n.filter(Boolean).join(\"\\n\")}}()},function(n,e){n.exports=function(n){var e=\"undefined\"!=typeof window&&window.location;if(!e)throw new Error(\"fixUrls requires window.location\");if(!n||\"string\"!=typeof n)return n;var t=e.protocol+\"//\"+e.host,o=t+e.pathname.replace(/\\/[^\\/]*$/,\"/\");return n.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi,function(n,e){var i=e.trim().replace(/^\"(.*)\"$/,function(n,e){return e}).replace(/^'(.*)'$/,function(n,e){return e});if(/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(i))return n;var r;return r=0===i.indexOf(\"//\")?i:0===i.indexOf(\"/\")?t+i:o+i.replace(/^\\.\\//,\"\"),\"url(\"+JSON.stringify(r)+\")\"})}},function(n,e,t){\"use strict\";function o(){var n=window.innerWidth,e=window.innerHeight,t=n/e;d.style.width=\"\".concat(n,\"px\"),d.style.height=\"\".concat(e,\"px\"),t>w.a.maxRatio?d.style.width=\"\".concat(e*w.a.maxRatio,\"px\"):t<w.a.minRatio&&(d.style.height=\"\".concat(n/w.a.minRatio,\"px\"));var o=d.getBoundingClientRect();d.style.marginLeft=\"\".concat(-.5*o.width,\"px\"),d.style.marginTop=\"\".concat(-.5*o.height,\"px\")}\nfunction i(){d=document.getElementById(\"game-container\"),u=document.getElementById(\"loader\"),f=document.getElementById(\"progress-container\"),h=document.getElementById(\"progress-fill\"),m=document.getElementById(\"progress-amount\"),p=document.getElementById(\"progress-comment\"),window.addEventListener(\"resize\",o),window.addEventListener(\"focus\",o),window.PokiSDK.init().then(function(){window.pokiBridge?window.unityGame.SendMessage(window.pokiBridge,\"ready\"):window.pokiReady=!0}).catch(function(){window.pokiBridge?window.unityGame.SendMessage(window.pokiBridge,\"adblock\"):window.pokiAdBlock=!0,console.info(\"AdBlocker active\")}),window.PokiSDK.setDebug(w.a&&w.a.debug)}\nfunction r(){d.style.display=\"block\",u.style.display=\"none\",o(),PokiSDK.gameLoadingFinished(),window.removeSlideshowEventListeners(),g&&clearTimeout(g)}\nfunction a(n,e){if(n.Module){var t=100*e;h.style.width=\"\".concat(t,\"%\"),m.innerHTML=\"\".concat(t<<0,\"%\"),w.a.fileSize&&(m.innerHTML+=\" of \".concat(w.a.fileSize,\"MB\"));var o={percentageDone:t};PokiSDK.gameLoadingProgress(o),e>=1&&\"done\"!==f.className&&(f.className=\"done\",document.getElementById(\"progress-comment\").innerHTML=\"Preparing game...\",document.getElementById(\"progress-spinner\").style.display=\"flex\",g&&clearTimeout(g))}}\nfunction s(){var n=w.a.loadingComments||[\"Loading...\"];n?(p.innerHTML=n[y],y++,y>=n.length&&(y=0),g=setTimeout(s,w.a.commentChangeTime)):p.innerHTML=\"\"}\nfunction c(){!function(){var n=document.createElement(\"script\");n.src=w.a.unityWebglLoaderUrl,n.addEventListener(\"load\",function(){window.unityGame=window.UnityLoader.instantiate(\"game\",w.a.unityWebglBuildUrl,{onProgress:a,Module:{onRuntimeInitialized:r}})}),document.body.appendChild(n)}(),PokiSDK.gameLoadingStart(),w.a.fileSize&&(m.innerHTML+=\" of \".concat(w.a.fileSize,\"MB\"),m.style.width=\"12vh\",m.style.whiteSpace=\"nowrap\"),s()}\nfunction l(){window.setTimeout(function(){var n=document.getElementById(\"spinner\");n&&n.parentNode&&n.parentNode.removeChild(n)},w.a.spinnerRemoveDelay)}\nvar d,u,f,h,m,p,g,w=t(0),v=t(1),y=0;!function(){var n=document.createElement(\"div\");n.setAttribute(\"id\",\"spinner\"),n.className=\"spinner\",document.body.appendChild(n)}(),window.onload=function(){i();try{Object(v.a)().then(function(){l()})}catch(n){console.info(\"Slideshow loading error\",n),l()}\nc()}},function(n,e,t){var o=function(n){\"use strict\";function e(n,e,t,i){var r=e&&e.prototype instanceof o?e:o,a=Object.create(r.prototype),s=new f(i||[]);return a._invoke=c(n,t,s),a}\nfunction t(n,e,t){try{return{type:\"normal\",arg:n.call(e,t)}}catch(n){return{type:\"throw\",arg:n}}}\nfunction o(){}\nfunction i(){}\nfunction r(){}\nfunction a(n){[\"next\",\"throw\",\"return\"].forEach(function(e){n[e]=function(n){return this._invoke(e,n)}})}\nfunction s(n){function e(o,i,r,a){var s=t(n[o],n,i);if(\"throw\"!==s.type){var c=s.arg,l=c.value;return l&&\"object\"==typeof l&&w.call(l,\"__await\")?Promise.resolve(l.__await).then(function(n){e(\"next\",n,r,a)},function(n){e(\"throw\",n,r,a)}):Promise.resolve(l).then(function(n){c.value=n,r(c)},function(n){return e(\"throw\",n,r,a)})}\na(s.arg)}\nfunction o(n,t){function o(){return new Promise(function(o,i){e(n,t,o,i)})}\nreturn i=i?i.then(o,o):o()}\nvar i;this._invoke=o}\nfunction c(n,e,o){var i=S;return function(r,a){if(i===k)throw new Error(\"Generator is already running\");if(i===E){if(\"throw\"===r)throw a;return m()}\nfor(o.method=r,o.arg=a;;){var s=o.delegate;if(s){var c=l(s,o);if(c){if(c===I)continue;return c}}\nif(\"next\"===o.method)o.sent=o._sent=o.arg;else if(\"throw\"===o.method){if(i===S)throw i=E,o.arg;o.dispatchException(o.arg)}else \"return\"===o.method&&o.abrupt(\"return\",o.arg);i=k;var d=t(n,e,o);if(\"normal\"===d.type){if(i=o.done?E:L,d.arg===I)continue;return{value:d.arg,done:o.done}}\n\"throw\"===d.type&&(i=E,o.method=\"throw\",o.arg=d.arg)}}}\nfunction l(n,e){var o=n.iterator[e.method];if(o===p){if(e.delegate=null,\"throw\"===e.method){if(n.iterator.return&&(e.method=\"return\",e.arg=p,l(n,e),\"throw\"===e.method))return I;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}\nreturn I}\nvar i=t(o,n.iterator,e.arg);if(\"throw\"===i.type)return e.method=\"throw\",e.arg=i.arg,e.delegate=null,I;var r=i.arg;return r?r.done?(e[n.resultName]=r.value,e.next=n.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=p),e.delegate=null,I):r:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,I)}\nfunction d(n){var e={tryLoc:n[0]};1 in n&&(e.catchLoc=n[1]),2 in n&&(e.finallyLoc=n[2],e.afterLoc=n[3]),this.tryEntries.push(e)}\nfunction u(n){var e=n.completion||{};e.type=\"normal\",delete e.arg,n.completion=e}\nfunction f(n){this.tryEntries=[{tryLoc:\"root\"}],n.forEach(d,this),this.reset(!0)}\nfunction h(n){if(n){var e=n[y];if(e)return e.call(n);if(\"function\"==typeof n.next)return n;if(!isNaN(n.length)){var t=-1,o=function e(){for(;++t<n.length;)\nif(w.call(n,t))return e.value=n[t],e.done=!1,e;return e.value=p,e.done=!0,e};return o.next=o}}\nreturn{next:m}}\nfunction m(){return{value:p,done:!0}}\nvar p,g=Object.prototype,w=g.hasOwnProperty,v=\"function\"==typeof Symbol?Symbol:{},y=v.iterator||\"@@iterator\",b=v.asyncIterator||\"@@asyncIterator\",x=v.toStringTag||\"@@toStringTag\";n.wrap=e;var S=\"suspendedStart\",L=\"suspendedYield\",k=\"executing\",E=\"completed\",I={},C={};C[y]=function(){return this};var T=Object.getPrototypeOf,B=T&&T(T(h([])));B&&B!==g&&w.call(B,y)&&(C=B);var j=r.prototype=o.prototype=Object.create(C);return i.prototype=j.constructor=r,r.constructor=i,r[x]=i.displayName=\"GeneratorFunction\",n.isGeneratorFunction=function(n){var e=\"function\"==typeof n&&n.constructor;return!!e&&(e===i||\"GeneratorFunction\"===(e.displayName||e.name))},n.mark=function(n){return Object.setPrototypeOf?Object.setPrototypeOf(n,r):(n.__proto__=r,x in n||(n[x]=\"GeneratorFunction\")),n.prototype=Object.create(j),n},n.awrap=function(n){return{__await:n}},a(s.prototype),s.prototype[b]=function(){return this},n.AsyncIterator=s,n.async=function(t,o,i,r){var a=new s(e(t,o,i,r));return n.isGeneratorFunction(o)?a:a.next().then(function(n){return n.done?n.value:a.next()})},a(j),j[x]=\"Generator\",j[y]=function(){return this},j.toString=function(){return \"[object Generator]\"},n.keys=function(n){var e=[];for(var t in n)e.push(t);return e.reverse(),function t(){for(;e.length;){var o=e.pop();if(o in n)return t.value=o,t.done=!1,t}\nreturn t.done=!0,t}},n.values=h,f.prototype={constructor:f,reset:function(n){if(this.prev=0,this.next=0,this.sent=this._sent=p,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=p,this.tryEntries.forEach(u),!n)\nfor(var e in this)\"t\"===e.charAt(0)&&w.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=p)},stop:function(){this.done=!0;var n=this.tryEntries[0],e=n.completion;if(\"throw\"===e.type)throw e.arg;return this.rval},dispatchException:function(n){function e(e,o){return r.type=\"throw\",r.arg=n,t.next=e,o&&(t.method=\"next\",t.arg=p),!!o}\nif(this.done)throw n;for(var t=this,o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],r=i.completion;if(\"root\"===i.tryLoc)return e(\"end\");if(i.tryLoc<=this.prev){var a=w.call(i,\"catchLoc\"),s=w.call(i,\"finallyLoc\");if(a&&s){if(this.prev<i.catchLoc)return e(i.catchLoc,!0);if(this.prev<i.finallyLoc)return e(i.finallyLoc)}else if(a){if(this.prev<i.catchLoc)return e(i.catchLoc,!0)}else{if(!s)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return e(i.finallyLoc)}}}},abrupt:function(n,e){for(var t=this.tryEntries.length-1;t>=0;--t){var o=this.tryEntries[t];if(o.tryLoc<=this.prev&&w.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}\ni&&(\"break\"===n||\"continue\"===n)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var r=i?i.completion:{};return r.type=n,r.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,I):this.complete(r)},complete:function(n,e){if(\"throw\"===n.type)throw n.arg;return \"break\"===n.type||\"continue\"===n.type?this.next=n.arg:\"return\"===n.type?(this.rval=this.arg=n.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===n.type&&e&&(this.next=e),I},finish:function(n){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===n)return this.complete(t.completion,t.afterLoc),u(t),I}},catch:function(n){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===n){var o=t.completion;if(\"throw\"===o.type){var i=o.arg;u(t)}\nreturn i}}\nthrow new Error(\"illegal catch attempt\")},delegateYield:function(n,e,t){return this.delegate={iterator:h(n),resultName:e,nextLoc:t},\"next\"===this.method&&(this.arg=p),I}},n}(n.exports);try{regeneratorRuntime=o}catch(n){Function(\"r\",\"regeneratorRuntime = r\")(o)}},function(n,e){window.initPokiBridge=function(n){window.pokiReady||window.pokiAdBlock?window.pokiReady?window.unityGame.SendMessage(n,\"ready\"):window.pokiAdBlock&&window.unityGame.SendMessage(n,\"adblock\"):window.pokiBridge=n,window.commercialBreak=function(){PokiSDK.commercialBreak().then(function(){window.unityGame.SendMessage(n,\"commercialBreakCompleted\")})},window.rewardedBreak=function(){PokiSDK.rewardedBreak().then(function(e){window.unityGame.SendMessage(n,\"rewardedBreakCompleted\",e.toString())})}}}]);"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:07.033Z",
|
|
"time": 54.571000000123604,
|
|
"timings": {
|
|
"blocked": 26.9470000000102,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 1.9419999999253488,
|
|
"receive": 25.682000000188054,
|
|
"_blocked_queueing": 12.559000000010201
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "parser",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/",
|
|
"lineNumber": 0
|
|
},
|
|
"_priority": "VeryHigh",
|
|
"_resourceType": "font",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://a.poki.com/fonts/torus-bold-webfont.woff2",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "Origin",
|
|
"value": "https://watchdocumentaries.com"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:40 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "font/woff2"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "23064"
|
|
},
|
|
{
|
|
"name": "x-amz-id-2",
|
|
"value": "JFFH0Qufuw032zn8UPEhIyg7Y3s3F+2S35SEx1n010RMIClwx86H4UOQeJ3Mq1W5hz2aGj2TVfI="
|
|
},
|
|
{
|
|
"name": "x-amz-request-id",
|
|
"value": "5V5VDJ0HH08QTFYK"
|
|
},
|
|
{
|
|
"name": "access-control-allow-origin",
|
|
"value": "*"
|
|
},
|
|
{
|
|
"name": "access-control-allow-methods",
|
|
"value": "GET, HEAD"
|
|
},
|
|
{
|
|
"name": "access-control-max-age",
|
|
"value": "31557600"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Origin, Access-Control-Request-Headers, Access-Control-Request-Method, Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Mon, 03 Jun 2019 06:56:20 GMT"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"8edd9bd649278d7dcf89186f0cdb22a5\""
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "11778579"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf2bcedc82b6-IAD"
|
|
},
|
|
{
|
|
"name": "alt-svc",
|
|
"value": "h3=\":443\"; ma=86400, h3-29=\":443\"; ma=86400"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 23064,
|
|
"mimeType": "font/woff2",
|
|
"text": "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oaTFeuhFMCXkM+VJNzlESid5VG22qyn6hA46MtkeI2bbarYcP3vzqaRt//l4nf/eVLvf1b7saxAlKgTVGNiCQqUxqS9OlDdap7o9elWU0l/RaT5IsJCdCd2ZcGMioWa0GLHidEKniZIkt/7sNOkyZMqSLUevochnGT2P31qkWIlShrLKKa+CiiqprPAvVFNdweSza6mtjrrqqa+BrsO/qbEmmmqmuRZahpnVxhjrqHk+GGeayZbaaE0wkzwy2uzg0ZpqvglOexZWltnkr89+17P4t1103jattDZDG5e1dcEl111x1TUftXPbDTdt194PY+65464OPvtqok466qyrLrpZobuew2dvob61n/4+GWCQgQYbaogDVhr+bxL+8ZG++OaQHXY67IGHYR39MRCDMRTDMRKj4Rwu4Rpu4R4edtltn/3O2GOvs8bbHF7HHA9feJsS/oEO3/AL/0Z70j2NW0e6aRtjWV2ij44GoreF0GQwRsYWUBbFREdHS5KMkbEyTpJlvEyQiQlXIbCHFA3PJdlo9NrqCnVhXqXuelIMXJMMmzGqK0pxOhmm74bBFoqMjJGx74tDVQ7hCS7sMWEOXb//51RdPfU0htjiERJn0qi429aPX5agjktnWee40rW4xqd5srrFM+2JzmIuIpR9CJl1ihyBaSswHuyjd/f4u3snzLcJerfIX46AcrMr//0nDDD2t/gZ6yIat3sxuPSJ+P/1QE59sIDxcGzToIytgPb75nsf",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700::6810:d147]",
|
|
"startedDateTime": "2023-02-16T22:46:07.656Z",
|
|
"time": 31.895000000076834,
|
|
"timings": {
|
|
"blocked": 12.76900000002708,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0.6079999999642318,
|
|
"receive": 18.51800000008552,
|
|
"_blocked_queueing": 7.374000000027081
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 118,
|
|
"columnNumber": 10615
|
|
},
|
|
{
|
|
"functionName": "J",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 118,
|
|
"columnNumber": 10315
|
|
},
|
|
{
|
|
"functionName": "t.lazyLoadInit",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 1147
|
|
},
|
|
{
|
|
"functionName": "t.init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 557
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 347
|
|
},
|
|
{
|
|
"functionName": "init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 239
|
|
},
|
|
{
|
|
"functionName": "i",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 41,
|
|
"columnNumber": 361
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 194
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "script",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://game-cdn.poki.comsa/scripts/prebid/2.44.4-0.js",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_BLOCKED_BY_CLIENT"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:46:07.767Z",
|
|
"time": 204.8219999999219,
|
|
"timings": {
|
|
"blocked": 204.8219999999219,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "tt",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 127,
|
|
"columnNumber": 291
|
|
},
|
|
{
|
|
"functionName": "t.lazyLoadInit",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 1857
|
|
},
|
|
{
|
|
"functionName": "t.init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 557
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 347
|
|
},
|
|
{
|
|
"functionName": "init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 239
|
|
},
|
|
{
|
|
"functionName": "i",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 41,
|
|
"columnNumber": 361
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 194
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "fetch",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://devs-api.poki.comsa/gameinfo/@sdk?href=https%3A%2F%2Fwatchdocumentaries.com%2Fwp-content%2Fuploads%2Fgames%2Frocket-league%2F&referrer=",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
},
|
|
{
|
|
"name": "Content-Type",
|
|
"value": "text/plain"
|
|
}
|
|
],
|
|
"queryString": [
|
|
{
|
|
"name": "href",
|
|
"value": "https%3A%2F%2Fwatchdocumentaries.com%2Fwp-content%2Fuploads%2Fgames%2Frocket-league%2F"
|
|
},
|
|
{
|
|
"name": "referrer",
|
|
"value": ""
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_NAME_NOT_RESOLVED"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:46:07.777Z",
|
|
"time": 219.8430000000826,
|
|
"timings": {
|
|
"blocked": 219.8430000000826,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 137,
|
|
"columnNumber": 216
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 136,
|
|
"columnNumber": 4
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 137,
|
|
"columnNumber": 60
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 131,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "nt",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 128,
|
|
"columnNumber": 101
|
|
},
|
|
{
|
|
"functionName": "it",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 137,
|
|
"columnNumber": 92
|
|
},
|
|
{
|
|
"functionName": "t.lazyLoadInit",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 1861
|
|
},
|
|
{
|
|
"functionName": "t.init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 557
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 347
|
|
},
|
|
{
|
|
"functionName": "init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 239
|
|
},
|
|
{
|
|
"functionName": "i",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 41,
|
|
"columnNumber": 361
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 194
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "fetch",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/lng.txt",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
},
|
|
{
|
|
"name": "Content-Type",
|
|
"value": "text/plain"
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:40 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "text/plain"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf2809d6826e-IAD"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "W/\"62b5ec1f-47\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "cf-apo-via",
|
|
"value": "tcache"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=djC4tdnD1YsyVTnI3FIK3v%2BMO9DBJOABqaIg%2Bmpm3jKd1iuTpSgmO132wx03riimTWuRQlAzFHhPTHpShUUgzBZjQ%2FamSB%2FfTGpV1zyYYMhsrgr%2FtXqcRR%2BM3rGIsNHsNGx4BOBa319%2Fkc3ABEGopmikJLg%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "content-encoding",
|
|
"value": "br"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 71,
|
|
"mimeType": "text/plain",
|
|
"text": "No Content: https://slopeunblockedworld.com/games/rocket-league/lng.txt"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:07.791Z",
|
|
"time": 89.9930000000495,
|
|
"timings": {
|
|
"blocked": 19.959999999887238,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 2.9970000000185104,
|
|
"receive": 67.03600000014376,
|
|
"_blocked_queueing": 14.633999999887237
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 118,
|
|
"columnNumber": 10615
|
|
},
|
|
{
|
|
"functionName": "J",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 118,
|
|
"columnNumber": 10315
|
|
},
|
|
{
|
|
"functionName": "t.lazyLoadInit",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 1866
|
|
},
|
|
{
|
|
"functionName": "t.init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 557
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 347
|
|
},
|
|
{
|
|
"functionName": "init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 239
|
|
},
|
|
{
|
|
"functionName": "i",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 41,
|
|
"columnNumber": 361
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 194
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "script",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://imasdk.googleapis.comsa/js/sdkloader/ima3.js",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_NAME_NOT_RESOLVED"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:46:07.811Z",
|
|
"time": 177.05899999987196,
|
|
"timings": {
|
|
"blocked": 177.05899999987196,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 118,
|
|
"columnNumber": 10615
|
|
},
|
|
{
|
|
"functionName": "J",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 118,
|
|
"columnNumber": 10315
|
|
},
|
|
{
|
|
"functionName": "t.lazyLoadInit",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 1924
|
|
},
|
|
{
|
|
"functionName": "t.init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 557
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 347
|
|
},
|
|
{
|
|
"functionName": "init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 239
|
|
},
|
|
{
|
|
"functionName": "i",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 41,
|
|
"columnNumber": 361
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 194
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "script",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://securepubads.g.doubleclick.netsa/tag/js/gpt.js",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_BLOCKED_BY_CLIENT"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:46:07.818Z",
|
|
"time": 187.66900000014175,
|
|
"timings": {
|
|
"blocked": 187.66900000014175,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 273
|
|
},
|
|
{
|
|
"functionName": "c",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 288
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 48,
|
|
"columnNumber": 0
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "script",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:40 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "application/javascript"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "minify"
|
|
},
|
|
{
|
|
"name": "cf-polished",
|
|
"value": "origSize=238649"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "W/\"62b5ec41-3a439\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:54:25 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=M3k0HIkUcPH4X2MYFecy0AhZeTuObxMP%2BE%2Fn8rcMf9uD9vIUaoBzYsKcEjXWqXjOMsTcpMbFMO0XBZEEXCpBiQULkM1zxhQ3cC73VSNKcY1B7dJsN8SNZPKslGiJJNfyaobT8eWSz2LE7eHN9Mye%2BNR8tLY%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf2839fe826e-IAD"
|
|
},
|
|
{
|
|
"name": "content-encoding",
|
|
"value": "br"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 159449,
|
|
"mimeType": "application/javascript",
|
|
"text": "var UnityLoader=UnityLoader||{Compression:{identity:{require:function(){return{}},decompress:function(e){return e}},gzip:{require:function(e){var t={\"inflate.js\":function(e,t,r){\"use strict\";function n(e){if(!(this instanceof n))return new n(e);this.options=s.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var r=i.inflateInit2(this.strm,t.windowBits);if(r!==l.Z_OK)throw new Error(u[r]);this.header=new f,i.inflateGetHeader(this.strm,this.header)}\nfunction o(e,t){var r=new n(t);if(r.push(e,!0),r.err)throw r.msg||u[r.err];return r.result}\nfunction a(e,t){return t=t||{},t.raw=!0,o(e,t)}\nvar i=e(\"./zlib/inflate\"),s=e(\"./utils/common\"),d=e(\"./utils/strings\"),l=e(\"./zlib/constants\"),u=e(\"./zlib/messages\"),c=e(\"./zlib/zstream\"),f=e(\"./zlib/gzheader\"),h=Object.prototype.toString;n.prototype.push=function(e,t){var r,n,o,a,u,c,f=this.strm,p=this.options.chunkSize,m=this.options.dictionary,w=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?l.Z_FINISH:l.Z_NO_FLUSH,\"string\"==typeof e?f.input=d.binstring2buf(e):\"[object ArrayBuffer]\"===h.call(e)?f.input=new Uint8Array(e):f.input=e,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new s.Buf8(p),f.next_out=0,f.avail_out=p),r=i.inflate(f,l.Z_NO_FLUSH),r===l.Z_NEED_DICT&&m&&(c=\"string\"==typeof m?d.string2buf(m):\"[object ArrayBuffer]\"===h.call(m)?new Uint8Array(m):m,r=i.inflateSetDictionary(this.strm,c)),r===l.Z_BUF_ERROR&&!0===w&&(r=l.Z_OK,w=!1),r!==l.Z_STREAM_END&&r!==l.Z_OK)return this.onEnd(r),this.ended=!0,!1;f.next_out&&(0!==f.avail_out&&r!==l.Z_STREAM_END&&(0!==f.avail_in||n!==l.Z_FINISH&&n!==l.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(o=d.utf8border(f.output,f.next_out),a=f.next_out-o,u=d.buf2string(f.output,o),f.next_out=a,f.avail_out=p-a,a&&s.arraySet(f.output,f.output,o,a,0),this.onData(u)):this.onData(s.shrinkBuf(f.output,f.next_out)))),0===f.avail_in&&0===f.avail_out&&(w=!0)}while((f.avail_in>0||0===f.avail_out)&&r!==l.Z_STREAM_END);return r===l.Z_STREAM_END&&(n=l.Z_FINISH),n===l.Z_FINISH?(r=i.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l.Z_OK):n!==l.Z_SYNC_FLUSH||(this.onEnd(l.Z_OK),f.avail_out=0,!0)},n.prototype.onData=function(e){this.chunks.push(e)},n.prototype.onEnd=function(e){e===l.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=n,r.inflate=o,r.inflateRaw=a,r.ungzip=o},\"utils/common.js\":function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}\nreturn e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var o={arraySet:function(e,t,r,n,o){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),o);else\nfor(var a=0;a<n;a++)e[o+a]=t[r+a]},flattenChunks:function(e){var t,r,n,o,a,i;for(n=0,t=0,r=e.length;t<r;t++)n+=e[t].length;for(i=new Uint8Array(n),o=0,t=0,r=e.length;t<r;t++)a=e[t],i.set(a,o),o+=a.length;return i}},a={arraySet:function(e,t,r,n,o){for(var a=0;a<n;a++)e[o+a]=t[r+a]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,o)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,a))},r.setTyped(n)},\"utils/strings.js\":function(e,t,r){\"use strict\";function n(e,t){if(t<65537&&(e.subarray&&i||!e.subarray&&a))return String.fromCharCode.apply(null,o.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}\nvar o=e(\"./common\"),a=!0,i=!0;try{String.fromCharCode.apply(null,[0])}catch(e){a=!1}\ntry{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){i=!1}\nfor(var s=new o.Buf8(256),d=0;d<256;d++)s[d]=d>=252?6:d>=248?5:d>=240?4:d>=224?3:d>=192?2:1;s[254]=s[254]=1,r.string2buf=function(e){var t,r,n,a,i,s=e.length,d=0;for(a=0;a<s;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<s&&56320==(64512&(n=e.charCodeAt(a+1)))&&(r=65536+(r-55296<<10)+(n-56320),a++),d+=r<128?1:r<2048?2:r<65536?3:4;for(t=new o.Buf8(d),i=0,a=0;i<d;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<s&&56320==(64512&(n=e.charCodeAt(a+1)))&&(r=65536+(r-55296<<10)+(n-56320),a++),r<128?t[i++]=r:r<2048?(t[i++]=192|r>>>6,t[i++]=128|63&r):r<65536?(t[i++]=224|r>>>12,t[i++]=128|r>>>6&63,t[i++]=128|63&r):(t[i++]=240|r>>>18,t[i++]=128|r>>>12&63,t[i++]=128|r>>>6&63,t[i++]=128|63&r);return t},r.buf2binstring=function(e){return n(e,e.length)},r.binstring2buf=function(e){for(var t=new o.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,o,a,i,d=t||e.length,l=new Array(2*d);for(o=0,r=0;r<d;)\nif((a=e[r++])<128)l[o++]=a;else if((i=s[a])>4)l[o++]=65533,r+=i-1;else{for(a&=2===i?31:3===i?15:7;i>1&&r<d;)a=a<<6|63&e[r++],i--;i>1?l[o++]=65533:a<65536?l[o++]=a:(a-=65536,l[o++]=55296|a>>10&1023,l[o++]=56320|1023&a)}\nreturn n(l,o)},r.utf8border=function(e,t){var r;for(t=t||e.length,t>e.length&&(t=e.length),r=t-1;r>=0&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+s[e[r]]>t?r:t}},\"zlib/inflate.js\":function(e,t,r){\"use strict\";function n(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}\nfunction o(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new y.Buf16(320),this.work=new y.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}\nfunction a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=T,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new y.Buf32(me),t.distcode=t.distdyn=new y.Buf32(we),t.sane=1,t.back=-1,O):N}\nfunction i(e){var t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,a(e)):N}\nfunction s(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?N:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,i(e))):N}\nfunction d(e,t){var r,n;return e?(n=new o,e.state=n,n.window=null,r=s(e,t),r!==O&&(e.state=null),r):N}\nfunction l(e){return d(e,ye)}\nfunction u(e){if(ge){var t;for(w=new y.Buf32(512),b=new y.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(U(E,e.lens,0,288,w,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;U(k,e.lens,0,32,b,0,e.work,{bits:5}),ge=!1}\ne.lencode=w,e.lenbits=9,e.distcode=b,e.distbits=5}\nfunction c(e,t,r,n){var o,a=e.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new y.Buf8(a.wsize)),n>=a.wsize?(y.arraySet(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(o=a.wsize-a.wnext,o>n&&(o=n),y.arraySet(a.window,t,r-n,o,a.wnext),n-=o,n?(y.arraySet(a.window,t,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=o,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=o))),0}\nfunction f(e,t){var r,o,a,i,s,d,l,f,h,p,m,w,b,me,we,be,ye,ge,ve,Ae,Ue,xe,Ee,ke,Be=0,Le=new y.Buf8(4),We=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return N;r=e.state,r.mode===j&&(r.mode=X),s=e.next_out,a=e.output,l=e.avail_out,i=e.next_in,o=e.input,d=e.avail_in,f=r.hold,h=r.bits,p=d,m=l,xe=O;e:for(;;)switch(r.mode){case T:if(0===r.wrap){r.mode=X;break}\nfor(;h<16;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif(2&r.wrap&&35615===f){r.check=0,Le[0]=255&f,Le[1]=f>>>8&255,r.check=v(r.check,Le,2,0),f=0,h=0,r.mode=P;break}\nif(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&f)<<8)+(f>>8))%31){e.msg=\"incorrect header check\",r.mode=fe;break}\nif((15&f)!==I){e.msg=\"unknown compression method\",r.mode=fe;break}\nif(f>>>=4,h-=4,Ue=8+(15&f),0===r.wbits)r.wbits=Ue;else if(Ue>r.wbits){e.msg=\"invalid window size\",r.mode=fe;break}\nr.dmax=1<<Ue,e.adler=r.check=1,r.mode=512&f?G:j,f=0,h=0;break;case P:for(;h<16;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif(r.flags=f,(255&r.flags)!==I){e.msg=\"unknown compression method\",r.mode=fe;break}\nif(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=fe;break}\nr.head&&(r.head.text=f>>8&1),512&r.flags&&(Le[0]=255&f,Le[1]=f>>>8&255,r.check=v(r.check,Le,2,0)),f=0,h=0,r.mode=D;case D:for(;h<32;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nr.head&&(r.head.time=f),512&r.flags&&(Le[0]=255&f,Le[1]=f>>>8&255,Le[2]=f>>>16&255,Le[3]=f>>>24&255,r.check=v(r.check,Le,4,0)),f=0,h=0,r.mode=F;case F:for(;h<16;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nr.head&&(r.head.xflags=255&f,r.head.os=f>>8),512&r.flags&&(Le[0]=255&f,Le[1]=f>>>8&255,r.check=v(r.check,Le,2,0)),f=0,h=0,r.mode=q;case q:if(1024&r.flags){for(;h<16;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nr.length=f,r.head&&(r.head.extra_len=f),512&r.flags&&(Le[0]=255&f,Le[1]=f>>>8&255,r.check=v(r.check,Le,2,0)),f=0,h=0}else r.head&&(r.head.extra=null);r.mode=V;case V:if(1024&r.flags&&(w=r.length,w>d&&(w=d),w&&(r.head&&(Ue=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),y.arraySet(r.head.extra,o,i,w,Ue)),512&r.flags&&(r.check=v(r.check,o,w,i)),d-=w,i+=w,r.length-=w),r.length))break e;r.length=0,r.mode=Z;case Z:if(2048&r.flags){if(0===d)break e;w=0;do{Ue=o[i+w++],r.head&&Ue&&r.length<65536&&(r.head.name+=String.fromCharCode(Ue))}while(Ue&&w<d);if(512&r.flags&&(r.check=v(r.check,o,w,i)),d-=w,i+=w,Ue)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=Y;case Y:if(4096&r.flags){if(0===d)break e;w=0;do{Ue=o[i+w++],r.head&&Ue&&r.length<65536&&(r.head.comment+=String.fromCharCode(Ue))}while(Ue&&w<d);if(512&r.flags&&(r.check=v(r.check,o,w,i)),d-=w,i+=w,Ue)break e}else r.head&&(r.head.comment=null);r.mode=z;case z:if(512&r.flags){for(;h<16;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif(f!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=fe;break}\nf=0,h=0}\nr.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=j;break;case G:for(;h<32;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\ne.adler=r.check=n(f),f=0,h=0,r.mode=J;case J:if(0===r.havedict)return e.next_out=s,e.avail_out=l,e.next_in=i,e.avail_in=d,r.hold=f,r.bits=h,M;e.adler=r.check=1,r.mode=j;case j:if(t===L||t===W)break e;case X:if(r.last){f>>>=7&h,h-=7&h,r.mode=le;break}\nfor(;h<3;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nswitch(r.last=1&f,f>>>=1,h-=1,3&f){case 0:r.mode=K;break;case 1:if(u(r),r.mode=re,t===W){f>>>=2,h-=2;break e}\nbreak;case 2:r.mode=$;break;case 3:e.msg=\"invalid block type\",r.mode=fe}\nf>>>=2,h-=2;break;case K:for(f>>>=7&h,h-=7&h;h<32;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif((65535&f)!=(f>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=fe;break}\nif(r.length=65535&f,f=0,h=0,r.mode=Q,t===W)break e;case Q:r.mode=_;case _:if(w=r.length){if(w>d&&(w=d),w>l&&(w=l),0===w)break e;y.arraySet(a,o,i,w,s),d-=w,i+=w,l-=w,s+=w,r.length-=w;break}\nr.mode=j;break;case $:for(;h<14;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif(r.nlen=257+(31&f),f>>>=5,h-=5,r.ndist=1+(31&f),f>>>=5,h-=5,r.ncode=4+(15&f),f>>>=4,h-=4,r.nlen>286||r.ndist>30){e.msg=\"too many length or distance symbols\",r.mode=fe;break}\nr.have=0,r.mode=ee;case ee:for(;r.have<r.ncode;){for(;h<3;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nr.lens[We[r.have++]]=7&f,f>>>=3,h-=3}\nfor(;r.have<19;)r.lens[We[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,Ee={bits:r.lenbits},xe=U(x,r.lens,0,19,r.lencode,0,r.work,Ee),r.lenbits=Ee.bits,xe){e.msg=\"invalid code lengths set\",r.mode=fe;break}\nr.have=0,r.mode=te;case te:for(;r.have<r.nlen+r.ndist;){for(;Be=r.lencode[f&(1<<r.lenbits)-1],we=Be>>>24,be=Be>>>16&255,ye=65535&Be,!(we<=h);){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif(ye<16)f>>>=we,h-=we,r.lens[r.have++]=ye;else{if(16===ye){for(ke=we+2;h<ke;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif(f>>>=we,h-=we,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=fe;break}\nUe=r.lens[r.have-1],w=3+(3&f),f>>>=2,h-=2}else if(17===ye){for(ke=we+3;h<ke;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nf>>>=we,h-=we,Ue=0,w=3+(7&f),f>>>=3,h-=3}else{for(ke=we+7;h<ke;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nf>>>=we,h-=we,Ue=0,w=11+(127&f),f>>>=7,h-=7}\nif(r.have+w>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=fe;break}\nfor(;w--;)r.lens[r.have++]=Ue}}\nif(r.mode===fe)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=fe;break}\nif(r.lenbits=9,Ee={bits:r.lenbits},xe=U(E,r.lens,0,r.nlen,r.lencode,0,r.work,Ee),r.lenbits=Ee.bits,xe){e.msg=\"invalid literal/lengths set\",r.mode=fe;break}\nif(r.distbits=6,r.distcode=r.distdyn,Ee={bits:r.distbits},xe=U(k,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,Ee),r.distbits=Ee.bits,xe){e.msg=\"invalid distances set\",r.mode=fe;break}\nif(r.mode=re,t===W)break e;case re:r.mode=ne;case ne:if(d>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=i,e.avail_in=d,r.hold=f,r.bits=h,A(e,m),s=e.next_out,a=e.output,l=e.avail_out,i=e.next_in,o=e.input,d=e.avail_in,f=r.hold,h=r.bits,r.mode===j&&(r.back=-1);break}\nfor(r.back=0;Be=r.lencode[f&(1<<r.lenbits)-1],we=Be>>>24,be=Be>>>16&255,ye=65535&Be,!(we<=h);){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif(be&&0==(240&be)){for(ge=we,ve=be,Ae=ye;Be=r.lencode[Ae+((f&(1<<ge+ve)-1)>>ge)],we=Be>>>24,be=Be>>>16&255,ye=65535&Be,!(ge+we<=h);){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nf>>>=ge,h-=ge,r.back+=ge}\nif(f>>>=we,h-=we,r.back+=we,r.length=ye,0===be){r.mode=de;break}\nif(32&be){r.back=-1,r.mode=j;break}\nif(64&be){e.msg=\"invalid literal/length code\",r.mode=fe;break}\nr.extra=15&be,r.mode=oe;case oe:if(r.extra){for(ke=r.extra;h<ke;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nr.length+=f&(1<<r.extra)-1,f>>>=r.extra,h-=r.extra,r.back+=r.extra}\nr.was=r.length,r.mode=ae;case ae:for(;Be=r.distcode[f&(1<<r.distbits)-1],we=Be>>>24,be=Be>>>16&255,ye=65535&Be,!(we<=h);){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif(0==(240&be)){for(ge=we,ve=be,Ae=ye;Be=r.distcode[Ae+((f&(1<<ge+ve)-1)>>ge)],we=Be>>>24,be=Be>>>16&255,ye=65535&Be,!(ge+we<=h);){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nf>>>=ge,h-=ge,r.back+=ge}\nif(f>>>=we,h-=we,r.back+=we,64&be){e.msg=\"invalid distance code\",r.mode=fe;break}\nr.offset=ye,r.extra=15&be,r.mode=ie;case ie:if(r.extra){for(ke=r.extra;h<ke;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nr.offset+=f&(1<<r.extra)-1,f>>>=r.extra,h-=r.extra,r.back+=r.extra}\nif(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=fe;break}\nr.mode=se;case se:if(0===l)break e;if(w=m-l,r.offset>w){if((w=r.offset-w)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=fe;break}\nw>r.wnext?(w-=r.wnext,b=r.wsize-w):b=r.wnext-w,w>r.length&&(w=r.length),me=r.window}else me=a,b=s-r.offset,w=r.length;w>l&&(w=l),l-=w,r.length-=w;do{a[s++]=me[b++]}while(--w);0===r.length&&(r.mode=ne);break;case de:if(0===l)break e;a[s++]=r.length,l--,r.mode=ne;break;case le:if(r.wrap){for(;h<32;){if(0===d)break e;d--,f|=o[i++]<<h,h+=8}\nif(m-=l,e.total_out+=m,r.total+=m,m&&(e.adler=r.check=r.flags?v(r.check,a,m,s-m):g(r.check,a,m,s-m)),m=l,(r.flags?f:n(f))!==r.check){e.msg=\"incorrect data check\",r.mode=fe;break}\nf=0,h=0}\nr.mode=ue;case ue:if(r.wrap&&r.flags){for(;h<32;){if(0===d)break e;d--,f+=o[i++]<<h,h+=8}\nif(f!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=fe;break}\nf=0,h=0}\nr.mode=ce;case ce:xe=C;break e;case fe:xe=R;break e;case he:return H;case pe:default:return N}\nreturn e.next_out=s,e.avail_out=l,e.next_in=i,e.avail_in=d,r.hold=f,r.bits=h,(r.wsize||m!==e.avail_out&&r.mode<fe&&(r.mode<le||t!==B))&&c(e,e.output,e.next_out,m-e.avail_out)?(r.mode=he,H):(p-=e.avail_in,m-=e.avail_out,e.total_in+=p,e.total_out+=m,r.total+=m,r.wrap&&m&&(e.adler=r.check=r.flags?v(r.check,a,m,e.next_out-m):g(r.check,a,m,e.next_out-m)),e.data_type=r.bits+(r.last?64:0)+(r.mode===j?128:0)+(r.mode===re||r.mode===Q?256:0),(0===p&&0===m||t===B)&&xe===O&&(xe=S),xe)}\nfunction h(e){if(!e||!e.state)return N;var t=e.state;return t.window&&(t.window=null),e.state=null,O}\nfunction p(e,t){var r;return e&&e.state?(r=e.state,0==(2&r.wrap)?N:(r.head=t,t.done=!1,O)):N}\nfunction m(e,t){var r,n,o=t.length;return e&&e.state?(r=e.state,0!==r.wrap&&r.mode!==J?N:r.mode===J&&(n=1,(n=g(n,t,o,0))!==r.check)?R:c(e,t,o,o)?(r.mode=he,H):(r.havedict=1,O)):N}\nvar w,b,y=e(\"../utils/common\"),g=e(\"./adler32\"),v=e(\"./crc32\"),A=e(\"./inffast\"),U=e(\"./inftrees\"),x=0,E=1,k=2,B=4,L=5,W=6,O=0,C=1,M=2,N=-2,R=-3,H=-4,S=-5,I=8,T=1,P=2,D=3,F=4,q=5,V=6,Z=7,Y=8,z=9,G=10,J=11,j=12,X=13,K=14,Q=15,_=16,$=17,ee=18,te=19,re=20,ne=21,oe=22,ae=23,ie=24,se=25,de=26,le=27,ue=28,ce=29,fe=30,he=31,pe=32,me=852,we=592,ye=15,ge=!0;r.inflateReset=i,r.inflateReset2=s,r.inflateResetKeep=a,r.inflateInit=l,r.inflateInit2=d,r.inflate=f,r.inflateEnd=h,r.inflateGetHeader=p,r.inflateSetDictionary=m,r.inflateInfo=\"pako inflate (from Nodeca project)\"},\"zlib/constants.js\":function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},\"zlib/messages.js\":function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},\"zlib/zstream.js\":function(e,t,r){\"use strict\";function n(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}\nt.exports=n},\"zlib/gzheader.js\":function(e,t,r){\"use strict\";function n(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}\nt.exports=n},\"zlib/adler32.js\":function(e,t,r){\"use strict\";function n(e,t,r,n){for(var o=65535&e|0,a=e>>>16&65535|0,i=0;0!==r;){i=r>2e3?2e3:r,r-=i;do{o=o+t[n++]|0,a=a+o|0}while(--i);o%=65521,a%=65521}\nreturn o|a<<16|0}\nt.exports=n},\"zlib/crc32.js\":function(e,t,r){\"use strict\";function o(e,t,r,n){var o=a,i=n+r;e^=-1;for(var s=n;s<i;s++)e=e>>>8^o[255&(e^t[s])];return-1^e}\nvar a=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}\nreturn t}();t.exports=o},\"zlib/inffast.js\":function(e,t,r){\"use strict\";t.exports=function(e,t){var r,a,i,s,d,l,u,c,f,h,p,m,w,b,y,g,v,A,U,x,E,k,B,L,W;r=e.state,a=e.next_in,L=e.input,i=a+(e.avail_in-5),s=e.next_out,W=e.output,d=s-(t-e.avail_out),l=s+(e.avail_out-257),u=r.dmax,c=r.wsize,f=r.whave,h=r.wnext,p=r.window,m=r.hold,w=r.bits,b=r.lencode,y=r.distcode,g=(1<<r.lenbits)-1,v=(1<<r.distbits)-1;e:do{w<15&&(m+=L[a++]<<w,w+=8,m+=L[a++]<<w,w+=8),A=b[m&g];t:for(;;){if(U=A>>>24,m>>>=U,w-=U,0===(U=A>>>16&255))W[s++]=65535&A;else{if(!(16&U)){if(0==(64&U)){A=b[(65535&A)+(m&(1<<U)-1)];continue t}\nif(32&U){r.mode=12;break e}\ne.msg=\"invalid literal/length code\",r.mode=30;break e}\nx=65535&A,U&=15,U&&(w<U&&(m+=L[a++]<<w,w+=8),x+=m&(1<<U)-1,m>>>=U,w-=U),w<15&&(m+=L[a++]<<w,w+=8,m+=L[a++]<<w,w+=8),A=y[m&v];r:for(;;){if(U=A>>>24,m>>>=U,w-=U,!(16&(U=A>>>16&255))){if(0==(64&U)){A=y[(65535&A)+(m&(1<<U)-1)];continue r}\ne.msg=\"invalid distance code\",r.mode=30;break e}\nif(E=65535&A,U&=15,w<U&&(m+=L[a++]<<w,(w+=8)<U&&(m+=L[a++]<<w,w+=8)),(E+=m&(1<<U)-1)>u){e.msg=\"invalid distance too far back\",r.mode=30;break e}\nif(m>>>=U,w-=U,U=s-d,E>U){if((U=E-U)>f&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}\nif(k=0,B=p,0===h){if(k+=c-U,U<x){x-=U;do{W[s++]=p[k++]}while(--U);k=s-E,B=W}}else if(h<U){if(k+=c+h-U,(U-=h)<x){x-=U;do{W[s++]=p[k++]}while(--U);if(k=0,h<x){U=h,x-=U;do{W[s++]=p[k++]}while(--U);k=s-E,B=W}}}else if(k+=h-U,U<x){x-=U;do{W[s++]=p[k++]}while(--U);k=s-E,B=W}\nfor(;x>2;)W[s++]=B[k++],W[s++]=B[k++],W[s++]=B[k++],x-=3;x&&(W[s++]=B[k++],x>1&&(W[s++]=B[k++]))}else{k=s-E;do{W[s++]=W[k++],W[s++]=W[k++],W[s++]=W[k++],x-=3}while(x>2);x&&(W[s++]=W[k++],x>1&&(W[s++]=W[k++]))}\nbreak}}\nbreak}}while(a<i&&s<l);x=w>>3,a-=x,w-=x<<3,m&=(1<<w)-1,e.next_in=a,e.next_out=s,e.avail_in=a<i?i-a+5:5-(a-i),e.avail_out=s<l?l-s+257:257-(s-l),r.hold=m,r.bits=w}},\"zlib/inftrees.js\":function(e,t,r){\"use strict\";var n=e(\"../utils/common\"),o=15,u=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],c=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],f=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],h=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,p,m,w,b,y){var g,v,A,U,x,E,k,B,L,W=y.bits,O=0,C=0,M=0,N=0,R=0,H=0,S=0,I=0,T=0,P=0,D=null,F=0,q=new n.Buf16(16),V=new n.Buf16(16),Z=null,Y=0;for(O=0;O<=o;O++)q[O]=0;for(C=0;C<p;C++)q[t[r+C]]++;for(R=W,N=o;N>=1&&0===q[N];N--);if(R>N&&(R=N),0===N)return m[w++]=20971520,m[w++]=20971520,y.bits=1,0;for(M=1;M<N&&0===q[M];M++);for(R<M&&(R=M),I=1,O=1;O<=o;O++)\nif(I<<=1,(I-=q[O])<0)return-1;if(I>0&&(0===e||1!==N))return-1;for(V[1]=0,O=1;O<o;O++)V[O+1]=V[O]+q[O];for(C=0;C<p;C++)0!==t[r+C]&&(b[V[t[r+C]]++]=C);if(0===e?(D=Z=b,E=19):1===e?(D=u,F-=257,Z=c,Y-=257,E=256):(D=f,Z=h,E=-1),P=0,C=0,O=M,x=w,H=R,S=0,A=-1,T=1<<R,U=T-1,1===e&&T>852||2===e&&T>592)return 1;for(;;){k=O-S,b[C]<E?(B=0,L=b[C]):b[C]>E?(B=Z[Y+b[C]],L=D[F+b[C]]):(B=96,L=0),g=1<<O-S,v=1<<H,M=v;do{v-=g,m[x+(P>>S)+v]=k<<24|B<<16|L|0}while(0!==v);for(g=1<<O-1;P&g;)g>>=1;if(0!==g?(P&=g-1,P+=g):P=0,C++,0==--q[O]){if(O===N)break;O=t[r+b[C]]}\nif(O>R&&(P&U)!==A){for(0===S&&(S=R),x+=M,H=O-S,I=1<<H;H+S<N&&!((I-=q[H+S])<=0);)H++,I<<=1;if(T+=1<<H,1===e&&T>852||2===e&&T>592)return 1;A=P&U,m[A]=R<<24|H<<16|x-w|0}}\nreturn 0!==P&&(m[x+P]=O-S<<24|64<<16|0),y.bits=R,0}}};for(var r in t)t[r].folder=r.substring(0,r.lastIndexOf(\"/\")+1);var n=function(e){var r=[];return e=e.split(\"/\").every(function(e){return \"..\"==e?r.pop():\".\"==e||\"\"==e||r.push(e)})?r.join(\"/\"):null,e?t[e]||t[e+\".js\"]||t[e+\"/index.js\"]:null},o=function(e,t){return e?n(e.folder+\"node_modules/\"+t)||o(e.parent,t):null},a=function(e,t){var r=t.match(/^\\//)?null:e?t.match(/^\\.\\.?\\//)?n(e.folder+t):o(e,t):n(t);if(!r)throw \"module not found: \"+t;return r.exports||(r.parent=e,r(a.bind(null,r),r,r.exports={})),r.exports};return a(null,e)},decompress:function(e){this.exports||(this.exports=this.require(\"inflate.js\"));try{return this.exports.inflate(e)}catch(e){}},hasUnityMarker:function(e){var t=10,r=\"UnityWeb Compressed Content (gzip)\";if(t>e.length||31!=e[0]||139!=e[1])return!1;var n=e[3];if(4&n){if(t+2>e.length)return!1;if((t+=2+e[t]+(e[t+1]<<8))>e.length)return!1}\nif(8&n){for(;t<e.length&&e[t];)t++;if(t+1>e.length)return!1;t++}\nreturn 16&n&&String.fromCharCode.apply(null,e.subarray(t,t+r.length+1))==r+\"\\0\"}},brotli:{require:function(e){var t={\"decompress.js\":function(e,t,r){t.exports=e(\"./dec/decode\").BrotliDecompressBuffer},\"dec/bit_reader.js\":function(e,t,r){function n(e){this.buf_=new Uint8Array(a),this.input_=e,this.reset()}\nconst o=4096,a=8224,s=new Uint32Array([0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215]);n.READ_SIZE=o,n.IBUF_MASK=8191,n.prototype.reset=function(){this.buf_ptr_=0,this.val_=0,this.pos_=0,this.bit_pos_=0,this.bit_end_pos_=0,this.eos_=0,this.readMoreInput();for(var e=0;e<4;e++)this.val_|=this.buf_[this.pos_]<<8*e,++this.pos_;return this.bit_end_pos_>0},n.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))\nif(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error(\"Unexpected end of input \"+this.bit_pos_+\" \"+this.bit_end_pos_)}else{var e=this.buf_ptr_,t=this.input_.read(this.buf_,e,o);if(t<0)throw new Error(\"Unexpected end of input\");if(t<o){this.eos_=1;for(var r=0;r<32;r++)this.buf_[e+t+r]=0}\nif(0===e){for(r=0;r<32;r++)this.buf_[8192+r]=this.buf_[r];this.buf_ptr_=o}else this.buf_ptr_=0;this.bit_end_pos_+=t<<3}},n.prototype.fillBitWindow=function(){for(;this.bit_pos_>=8;)this.val_>>>=8,this.val_|=this.buf_[8191&this.pos_]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},n.prototype.readBits=function(e){32-this.bit_pos_<e&&this.fillBitWindow();var t=this.val_>>>this.bit_pos_&s[e];return this.bit_pos_+=e,t},t.exports=n},\"dec/context.js\":function(e,t,r){r.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),r.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512])},\"dec/decode.js\":function(e,t,r){function n(e){var t;return 0===e.readBits(1)?16:(t=e.readBits(3),t>0?17+t:(t=e.readBits(3),t>0?8+t:17))}\nfunction o(e){if(e.readBits(1)){var t=e.readBits(3);return 0===t?1:e.readBits(t)+(1<<t)}\nreturn 0}\nfunction a(){this.meta_block_length=0,this.input_end=0,this.is_uncompressed=0,this.is_metadata=!1}\nfunction i(e){var t,r,n,o=new a;if(o.input_end=e.readBits(1),o.input_end&&e.readBits(1))return o;if(7===(t=e.readBits(2)+4)){if(o.is_metadata=!0,0!==e.readBits(1))throw new Error(\"Invalid reserved bit\");if(0===(r=e.readBits(2)))return o;for(n=0;n<r;n++){var i=e.readBits(8);if(n+1===r&&r>1&&0===i)throw new Error(\"Invalid size byte\");o.meta_block_length|=i<<8*n}}else\nfor(n=0;n<t;++n){var s=e.readBits(4);if(n+1===t&&t>4&&0===s)throw new Error(\"Invalid size nibble\");o.meta_block_length|=s<<4*n}\nreturn++o.meta_block_length,o.input_end||o.is_metadata||(o.is_uncompressed=e.readBits(1)),o}\nfunction s(e,t,r){var n;return r.fillBitWindow(),t+=r.val_>>>r.bit_pos_&D,n=e[t].bits-P,n>0&&(r.bit_pos_+=P,t+=e[t].value,t+=r.val_>>>r.bit_pos_&(1<<n)-1),r.bit_pos_+=e[t].bits,e[t].value}\nfunction d(e,t,r,n){for(var o=0,a=M,i=0,s=0,d=32768,l=[],u=0;u<32;u++)l.push(new B(0,0));for(L(l,0,5,e,q);o<t&&d>0;){var c,f=0;if(n.readMoreInput(),n.fillBitWindow(),f+=n.val_>>>n.bit_pos_&31,n.bit_pos_+=l[f].bits,(c=255&l[f].value)<N)i=0,r[o++]=c,0!==c&&(a=c,d-=32768>>c);else{var h,p,m=c-14,w=0;if(c===N&&(w=a),s!==w&&(i=0,s=w),h=i,i>0&&(i-=2,i<<=m),i+=n.readBits(m)+3,p=i-h,o+p>t)throw new Error(\"[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols\");for(var b=0;b<p;b++)r[o+b]=s;o+=p,0!==s&&(d-=p<<15-s)}}\nif(0!==d)throw new Error(\"[ReadHuffmanCodeLengths] space = \"+d);for(;o<t;o++)r[o]=0}\nfunction l(e,t,r,n){var o,a=0,i=new Uint8Array(e);if(n.readMoreInput(),1===(o=n.readBits(2))){for(var s=e-1,l=0,u=new Int32Array(4),c=n.readBits(2)+1;s;)s>>=1,++l;for(f=0;f<c;++f)u[f]=n.readBits(l)%e,i[u[f]]=2;switch(i[u[0]]=1,c){case 1:break;case 3:if(u[0]===u[1]||u[0]===u[2]||u[1]===u[2])throw new Error(\"[ReadHuffmanCode] invalid symbols\");break;case 2:if(u[0]===u[1])throw new Error(\"[ReadHuffmanCode] invalid symbols\");i[u[1]]=1;break;case 4:if(u[0]===u[1]||u[0]===u[2]||u[0]===u[3]||u[1]===u[2]||u[1]===u[3]||u[2]===u[3])throw new Error(\"[ReadHuffmanCode] invalid symbols\");n.readBits(1)?(i[u[2]]=3,i[u[3]]=3):i[u[0]]=2}}else{var f,h=new Uint8Array(q),p=32,m=0,w=[new B(2,0),new B(2,4),new B(2,3),new B(3,2),new B(2,0),new B(2,4),new B(2,3),new B(4,1),new B(2,0),new B(2,4),new B(2,3),new B(3,2),new B(2,0),new B(2,4),new B(2,3),new B(4,5)];for(f=o;f<q&&p>0;++f){var b,y=V[f],g=0;n.fillBitWindow(),g+=n.val_>>>n.bit_pos_&15,n.bit_pos_+=w[g].bits,b=w[g].value,h[y]=b,0!==b&&(p-=32>>b,++m)}\nif(1!==m&&0!==p)throw new Error(\"[ReadHuffmanCode] invalid num_codes or space\");d(h,e,i,n)}\nif(0===(a=L(t,r,P,i,e)))throw new Error(\"[ReadHuffmanCode] BuildHuffmanTable failed: \");return a}\nfunction u(e,t,r){var n,o;return n=s(e,t,r),o=O.kBlockLengthPrefixCode[n].nbits,O.kBlockLengthPrefixCode[n].offset+r.readBits(o)}\nfunction c(e,t,r){var n;return e<Z?(r+=Y[e],r&=3,n=t[r]+z[e]):n=e-Z+1,n}\nfunction f(e,t){for(var r=e[t],n=t;n;--n)e[n]=e[n-1];e[0]=r}\nfunction h(e,t){var r,n=new Uint8Array(256);for(r=0;r<256;++r)n[r]=r;for(r=0;r<t;++r){var o=e[r];e[r]=n[o],o&&f(n,o)}}\nfunction p(e,t){this.alphabet_size=e,this.num_htrees=t,this.codes=new Array(t+t*G[e+31>>>5]),this.htrees=new Uint32Array(t)}\nfunction m(e,t){var r,n,a,i={num_htrees:null,context_map:null},d=0;t.readMoreInput();var u=i.num_htrees=o(t)+1,c=i.context_map=new Uint8Array(e);if(u<=1)return i;for(r=t.readBits(1),r&&(d=t.readBits(4)+1),n=[],a=0;a<F;a++)n[a]=new B(0,0);for(l(u+d,n,0,t),a=0;a<e;){var f;if(t.readMoreInput(),0===(f=s(n,0,t)))c[a]=0,++a;else if(f<=d)\nfor(var p=1+(1<<f)+t.readBits(f);--p;){if(a>=e)throw new Error(\"[DecodeContextMap] i >= context_map_size\");c[a]=0,++a}else c[a]=f-d,++a}\nreturn t.readBits(1)&&h(c,e),i}\nfunction w(e,t,r,n,o,a,i){var d,l=2*r,u=r,c=s(t,r*F,i);d=0===c?o[l+(1&a[u])]:1===c?o[l+(a[u]-1&1)]+1:c-2,d>=e&&(d-=e),n[r]=d,o[l+(1&a[u])]=d,++a[u]}\nfunction b(e,t,r,n,o,a){var i,s=o+1,d=r&o,l=a.pos_&E.IBUF_MASK;if(t<8||a.bit_pos_+(t<<3)<a.bit_end_pos_)\nfor(;t-->0;)a.readMoreInput(),n[d++]=a.readBits(8),d===s&&(e.write(n,s),d=0);else{if(a.bit_end_pos_<32)throw new Error(\"[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32\");for(;a.bit_pos_<32;)n[d]=a.val_>>>a.bit_pos_,a.bit_pos_+=8,++d,--t;if(i=a.bit_end_pos_-a.bit_pos_>>3,l+i>E.IBUF_MASK){for(var u=E.IBUF_MASK+1-l,c=0;c<u;c++)n[d+c]=a.buf_[l+c];i-=u,d+=u,t-=u,l=0}\nfor(c=0;c<i;c++)n[d+c]=a.buf_[l+c];if(d+=i,t-=i,d>=s)\nfor(e.write(n,s),d-=s,c=0;c<d;c++)n[c]=n[s+c];for(;d+t>=s;){if(i=s-d,a.input_.read(n,d,i)<i)throw new Error(\"[CopyUncompressedBlockToOutput] not enough bytes\");e.write(n,s),t-=i,d=0}\nif(a.input_.read(n,d,t)<t)throw new Error(\"[CopyUncompressedBlockToOutput] not enough bytes\");a.reset()}}\nfunction y(e){var t=e.bit_pos_+7&-8;return 0==e.readBits(t-e.bit_pos_)}\nfunction g(e){var t=new U(e),r=new E(t);return n(r),i(r).meta_block_length}\nfunction v(e,t){var r=new U(e);null==t&&(t=g(e));var n=new Uint8Array(t),o=new x(n);return A(r,o),o.pos<o.buffer.length&&(o.buffer=o.buffer.subarray(0,o.pos)),o.buffer}\nfunction A(e,t){var r,a,d,f,h,g,v,A,U,x=0,L=0,M=0,N=0,P=[16,15,11,4],D=0,q=0,V=0,Y=[new p(0,0),new p(0,0),new p(0,0)];const z=128+E.READ_SIZE;U=new E(e),M=n(U),a=(1<<M)-16,d=1<<M,f=d-1,h=new Uint8Array(d+z+k.maxDictionaryWordLength),g=d,v=[],A=[];for(var G=0;G<3240;G++)v[G]=new B(0,0),A[G]=new B(0,0);for(;!L;){var J,j,X,K,Q,_,$,ee,te,re=0,ne=[1<<28,1<<28,1<<28],oe=[0],ae=[1,1,1],ie=[0,1,0,1,0,1],se=[0],de=null,le=null,ue=null,ce=0,fe=null,he=0,pe=0,me=null,we=0,be=0,ye=0;for(r=0;r<3;++r)Y[r].codes=null,Y[r].htrees=null;U.readMoreInput();var ge=i(U);if(re=ge.meta_block_length,x+re>t.buffer.length){var ve=new Uint8Array(x+re);ve.set(t.buffer),t.buffer=ve}\nif(L=ge.input_end,J=ge.is_uncompressed,ge.is_metadata)\nfor(y(U);re>0;--re)U.readMoreInput(),U.readBits(8);else if(0!==re)\nif(J)U.bit_pos_=U.bit_pos_+7&-8,b(t,re,x,h,f,U),x+=re;else{for(r=0;r<3;++r)ae[r]=o(U)+1,ae[r]>=2&&(l(ae[r]+2,v,r*F,U),l(S,A,r*F,U),ne[r]=u(A,r*F,U),se[r]=1);for(U.readMoreInput(),j=U.readBits(2),X=Z+(U.readBits(4)<<j),K=(1<<j)-1,Q=X+(48<<j),le=new Uint8Array(ae[0]),r=0;r<ae[0];++r)U.readMoreInput(),le[r]=U.readBits(2)<<1;var Ae=m(ae[0]<<I,U);_=Ae.num_htrees,de=Ae.context_map;var Ue=m(ae[2]<<T,U);for($=Ue.num_htrees,ue=Ue.context_map,Y[0]=new p(R,_),Y[1]=new p(H,ae[1]),Y[2]=new p(Q,$),r=0;r<3;++r)Y[r].decode(U);for(fe=0,me=0,ee=le[oe[0]],be=W.lookupOffsets[ee],ye=W.lookupOffsets[ee+1],te=Y[1].htrees[0];re>0;){var xe,Ee,ke,Be,Le,We,Oe,Ce,Me,Ne,Re,He,Se;for(U.readMoreInput(),0===ne[1]&&(w(ae[1],v,1,oe,ie,se,U),ne[1]=u(A,F,U),te=Y[1].htrees[oe[1]]),--ne[1],xe=s(Y[1].codes,te,U),Ee=xe>>6,Ee>=2?(Ee-=2,Oe=-1):Oe=0,ke=O.kInsertRangeLut[Ee]+(xe>>3&7),Be=O.kCopyRangeLut[Ee]+(7&xe),Le=O.kInsertLengthPrefixCode[ke].offset+U.readBits(O.kInsertLengthPrefixCode[ke].nbits),We=O.kCopyLengthPrefixCode[Be].offset+U.readBits(O.kCopyLengthPrefixCode[Be].nbits),q=h[x-1&f],V=h[x-2&f],Me=0;Me<Le;++Me)U.readMoreInput(),0===ne[0]&&(w(ae[0],v,0,oe,ie,se,U),ne[0]=u(A,0,U),ce=oe[0]<<I,fe=ce,ee=le[oe[0]],be=W.lookupOffsets[ee],ye=W.lookupOffsets[ee+1]),Re=W.lookup[be+q]|W.lookup[ye+V],he=de[fe+Re],--ne[0],V=q,q=s(Y[0].codes,Y[0].htrees[he],U),h[x&f]=q,(x&f)===f&&t.write(h,d),++x;if((re-=Le)<=0)break;if(Oe<0&&(U.readMoreInput(),0===ne[2]&&(w(ae[2],v,2,oe,ie,se,U),ne[2]=u(A,2160,U),pe=oe[2]<<T,me=pe),--ne[2],Re=255&(We>4?3:We-2),we=ue[me+Re],(Oe=s(Y[2].codes,Y[2].htrees[we],U))>=X&&(Oe-=X,Se=Oe&K,Oe>>=j,He=1+(Oe>>1),Ie=(2+(1&Oe)<<He)-4,Oe=X+(Ie+U.readBits(He)<<j)+Se)),(Ce=c(Oe,P,D))<0)throw new Error(\"[BrotliDecompress] invalid distance\");if(N=x<a&&N!==a?x:a,Ne=x&f,Ce>N){if(!(We>=k.minDictionaryWordLength&&We<=k.maxDictionaryWordLength))throw new Error(\"Invalid backward reference. pos: \"+x+\" distance: \"+Ce+\" len: \"+We+\" bytes left: \"+re);var Ie=k.offsetsByLength[We],Te=Ce-N-1,Pe=k.sizeBitsByLength[We],De=(1<<Pe)-1,Fe=Te&De,qe=Te>>Pe;if(Ie+=Fe*We,!(qe<C.kNumTransforms))throw new Error(\"Invalid backward reference. pos: \"+x+\" distance: \"+Ce+\" len: \"+We+\" bytes left: \"+re);var Ve=C.transformDictionaryWord(h,Ne,Ie,We,qe);if(Ne+=Ve,x+=Ve,re-=Ve,Ne>=g){t.write(h,d);for(var Ze=0;Ze<Ne-g;Ze++)h[Ze]=h[g+Ze]}}else{if(Oe>0&&(P[3&D]=Ce,++D),We>re)throw new Error(\"Invalid backward reference. pos: \"+x+\" distance: \"+Ce+\" len: \"+We+\" bytes left: \"+re);for(Me=0;Me<We;++Me)h[x&f]=h[x-Ce&f],(x&f)===f&&t.write(h,d),++x,--re}\nq=h[x-1&f],V=h[x-2&f]}\nx&=1073741823}}\nt.write(h,x&f)}\nvar U=e(\"./streams\").BrotliInput,x=e(\"./streams\").BrotliOutput,E=e(\"./bit_reader\"),k=e(\"./dictionary\"),B=e(\"./huffman\").HuffmanCode,L=e(\"./huffman\").BrotliBuildHuffmanTable,W=e(\"./context\"),O=e(\"./prefix\"),C=e(\"./transform\");const M=8,N=16,R=256,H=704,S=26,I=6,T=2,P=8,D=255,F=1080,q=18,V=new Uint8Array([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),Z=16,Y=new Uint8Array([3,2,1,0,3,3,3,3,3,3,2,2,2,2,2,2]),z=new Int8Array([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),G=new Uint16Array([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]);p.prototype.decode=function(e){var t,r,n=0;for(t=0;t<this.num_htrees;++t)this.htrees[t]=n,r=l(this.alphabet_size,this.codes,n,e),n+=r},r.BrotliDecompressedSize=g,r.BrotliDecompressBuffer=v,r.BrotliDecompress=A,k.init()},\"dec/dictionary.js\":function(e,t,r){var n=e(\"./dictionary-browser\");r.init=function(){r.dictionary=n.init()},r.offsetsByLength=new Uint32Array([0,0,0,0,0,4096,9216,21504,35840,44032,53248,63488,74752,87040,93696,100864,104704,106752,108928,113536,115968,118528,119872,121280,122016]),r.sizeBitsByLength=new Uint8Array([0,0,0,0,10,10,11,11,10,10,10,10,10,9,9,8,7,7,8,7,7,6,6,5,5]),r.minDictionaryWordLength=4,r.maxDictionaryWordLength=24},\"dec/dictionary.bin.js\":function(e,t,r){t.exports=\"W5/fcQLn5gKf2XUbAiQ1XULX+TZz6ADToDsgqk6qVfeC0e4m6OO2wcQ1J76ZBVRV1fRkEsdu//62zQsFEZWSTCnMhcsQKlS2qOhuVYYMGCkV0fXWEoMFbESXrKEZ9wdUEsyw9g4bJlEt1Y6oVMxMRTEVbCIwZzJzboK5j8m4YH02qgXYhv1V+PM435sLVxyHJihaJREEhZGqL03txGFQLm76caGO/ovxKvzCby/3vMTtX/459f0igi7WutnKiMQ6wODSoRh/8Lx1V3Q99MvKtwB6bHdERYRY0hStJoMjNeTsNX7bn+Y7e4EQ3bf8xBc7L0BsyfFPK43dGSXpL6clYC/I328h54/VYrQ5i0648FgbGtl837svJ35L3Mot/+nPlNpWgKx1gGXQYqX6n+bbZ7wuyCHKcUok12Xjqub7NXZGzqBx0SD+uziNf87t7ve42jxSKQoW3nyxVrWIGlFShhCKxjpZZ5MeGna0+lBkk+kaN8F9qFBAFgEogyMBdcX/T1W/WnMOi/7ycWUQloEBKGeC48MkiwqJkJO+12eQiOFHMmck6q/IjWW3RZlany23TBm+cNr/84/oi5GGmGBZWrZ6j+zykVozz5fT/QH/Da6WTbZYYPynVNO7kxzuNN2kxKKWche5WveitPKAecB8YcAHz/+zXLjcLzkdDSktNIDwZE9J9X+tto43oJy65wApM3mDzYtCwX9lM+N5VR3kXYo0Z3t0TtXfgBFg7gU8oN0Dgl7fZlUbhNll+0uuohRVKjrEd8egrSndy5/Tgd2gqjA4CAVuC7ESUmL3DZoGnfhQV8uwnpi8EGvAVVsowNRxPudck7+oqAUDkwZopWqFnW1riss0t1z6iCISVKreYGNvQcXv+1L9+jbP8cd/dPUiqBso2q+7ZyFBvENCkkVr44iyPbtOoOoCecWsiuqMSML5lv+vN5MzUr+Dnh73G7Q1YnRYJVYXHRJaNAOByiaK6CusgFdBPE40r0rvqXV7tksKO2DrHYXBTv8P5ysqxEx8VDXUDDqkPH6NNOV/a2WH8zlkXRELSa8P+heNyJBBP7PgsG1EtWtNef6/i+lcayzQwQCsduidpbKfhWUDgAEmyhGu/zVTacI6RS0zTABrOYueemnVa19u9fT23N/Ta6RvTpof5DWygqreCqrDAgM4LID1+1T/taU6yTFVLqXOv+/MuQOFnaF8vLMKD7tKWDoBdALgxF33zQccCcdHx8fKIVdW69O7qHtXpeGr9jbbpFA+qRMWr5hp0s67FPc7HAiLV0g0/peZlW7hJPYEhZyhpSwahnf93/tZgfqZWXFdmdXBzqxGHLrQKxoAY6fRoBhgCRPmmGueYZ5JexTVDKUIXzkG/fqp/0U3hAgQdJ9zumutK6nqWbaqvm1pgu03IYR+G+8s0jDBBz8cApZFSBeuWasyqo2OMDKAZCozS+GWSvL/HsE9rHxooe17U3s/lTE+VZAk4j3dp6uIGaC0JMiqR5CUsabPyM0dOYDR7Ea7ip4USZlya38YfPtvrX/tBlhHilj55nZ1nfN24AOAi9BVtz/Mbn8AEDJCqJgsVUa6nQnSxv2Fs7l/NlCzpfYEjmPrNyib/+t0ei2eEMjvNhLkHCZlci4WhBe7ePZTmzYqlY9+1pxtS4GB+5lM1BHT9tS270EWUDYFq1I0yY/fNiAk4bk9yBgmef/f2k6AlYQZHsNFnW8wBQxCd68iWv7/35bXfz3JZmfGligWAKRjIs3IpzxQ27vAglHSiOzCYzJ9L9A1CdiyFvyR66ucA4jKifu5ehwER26yV7HjKqn5Mfozo7Coxxt8LWWPT47BeMxX8p0Pjb7hZn+6bw7z3Lw+7653j5sI8CLu5kThpMlj1m4c2ch3jGcP1FsT13vuK3qjecKTZk2kHcOZY40UX+qdaxstZqsqQqgXz+QGF99ZJLqr3VYu4aecl1Ab5GmqS8k/GV5b95zxQ5d4EfXUJ6kTS/CXF/aiqKDOT1T7Jz5z0PwDUcwr9clLN1OJGCiKfqvah+h3XzrBOiLOW8wvn8gW6qE8vPxi+Efv+UH55T7PQFVMh6cZ1pZQlzJpKZ7P7uWvwPGJ6DTlR6wbyj3Iv2HyefnRo/dv7dNx+qaa0N38iBsR++Uil7Wd4afwDNsrzDAK4fXZwvEY/jdKuIKXlfrQd2C39dW7ntnRbIp9OtGy9pPBn/V2ASoi/2UJZfS+xuGLH8bnLuPlzdTNS6zdyk8Dt/h6sfOW5myxh1f+zf3zZ3MX/mO9cQPp5pOx967ZA6/pqHvclNfnUFF+rq+Vd7alKr6KWPcIDhpn6v2K6NlUu6LrKo8b/pYpU/Gazfvtwhn7tEOUuXht5rUJdSf6sLjYf0VTYDgwJ81yaqKTUYej/tbHckSRb/HZicwGJqh1mAHB/IuNs9dc9yuvF3D5Xocm3elWFdq5oEy70dYFit79yaLiNjPj5UUcVmZUVhQEhW5V2Z6Cm4HVH/R8qlamRYwBileuh07CbEce3TXa2JmXWBf+ozt319psboobeZhVnwhMZzOeQJzhpTDbP71Tv8HuZxxUI/+ma3XW6DFDDs4+qmpERwHGBd2edxwUKlODRdUWZ/g0GOezrbzOZauFMai4QU6GVHV6aPNBiBndHSsV4IzpvUiiYyg6OyyrL4Dj5q/Lw3N5kAwftEVl9rNd7Jk5PDij2hTH6wIXnsyXkKePxbmHYgC8A6an5Fob/KH5GtC0l4eFso+VpxedtJHdHpNm+Bvy4C79yVOkrZsLrQ3OHCeB0Ra+kBIRldUGlDCEmq2RwXnfyh6Dz+alk6eftI2n6sastRrGwbwszBeDRS/Fa/KwRJkCzTsLr/JCs5hOPE/MPLYdZ1F1fv7D+VmysX6NpOC8aU9F4Qs6HvDyUy9PvFGDKZ/P5101TYHFl8pjj6wm/qyS75etZhhfg0UEL4OYmHk6m6dO192AzoIyPSV9QedDA4Ml23rRbqxMPMxf7FJnDc5FTElVS/PyqgePzmwVZ26NWhRDQ+oaT7ly7ell4s3DypS1s0g+tOr7XHrrkZj9+x/mJBttrLx98lFIaRZzHz4aC7r52/JQ4VjHahY2/YVXZn/QC2ztQb/sY3uRlyc5vQS8nLPGT/n27495i8HPA152z7Fh5aFpyn1GPJKHuPL8Iw94DuW3KjkURAWZXn4EQy89xiKEHN1mk/tkM4gYDBxwNoYvRfE6LFqsxWJtPrDGbsnLMap3Ka3MUoytW0cvieozOmdERmhcqzG+3HmZv2yZeiIeQTKGdRT4HHNxekm1tY+/n06rGmFleqLscSERzctTKM6G9P0Pc1RmVvrascIxaO1CQCiYPE15bD7c3xSeW7gXxYjgxcrUlcbIvO0r+Yplhx0kTt3qafDOmFyMjgGxXu73rddMHpV1wMubyAGcf/v5dLr5P72Ta9lBF+fzMJrMycwv+9vnU3ANIl1cH9tfW7af8u0/HG0vV47jNFXzFTtaha1xvze/s8KMtCYucXc1nzfd/MQydUXn/b72RBt5wO/3jRcMH9BdhC/yctKBIveRYPrNpDWqBsO8VMmP+WvRaOcA4zRMR1PvSoO92rS7pYEv+fZfEfTMzEdM+6X5tLlyxExhqLRkms5EuLovLfx66de5fL2/yX02H52FPVwahrPqmN/E0oVXnsCKhbi/yRxX83nRbUKWhzYceXOntfuXn51NszJ6MO73pQf5Pl4in3ec4JU8hF7ppV34+mm9r1LY0ee/i1O1wpd8+zfLztE0cqBxggiBi5Bu95v9l3r9r/U5hweLn+TbfxowrWDqdJauKd8+q/dH8sbPkc9ttuyO94f7/XK/nHX46MPFLEb5qQlNPvhJ50/59t9ft3LXu7uVaWaO2bDrDCnRSzZyWvFKxO1+vT8MwwunR3bX0CkfPjqb4K9O19tn5X50PvmYpEwHtiW9WtzuV/s76B1zvLLNkViNd8ySxIl/3orfqP90TyTGaf7/rx8jQzeHJXdmh/N6YDvbvmTBwCdxfEQ1NcL6wNMdSIXNq7b1EUzRy1/Axsyk5p22GMG1b+GxFgbHErZh92wuvco0AuOLXct9hvw2nw/LqIcDRRmJmmZzcgUa7JpM/WV/S9IUfbF56TL2orzqwebdRD8nIYNJ41D/hz37Fo11p2Y21wzPcn713qVGhqtevStYfGH4n69OEJtPvbbLYWvscDqc3Hgnu166+tAyLnxrX0Y5zoYjV++1sI7t5kMr02KT/+uwtkc+rZLOf/qn/s3nYCf13Dg8/sB2diJgjGqjQ+TLhxbzyue2Ob7X6/9lUwW7a+lbznHzOYy8LKW1C/uRPbQY3KW/0gO9LXunHLvPL97afba9bFtc9hmz7GAttjVYlCvQAiOwAk/gC5+hkLEs6tr3AZKxLJtOEwk2dLxTYWsIB/j/ToWtIWzo906FrSG8iaqqqqqqiIiIiAgzMzMzNz+AyK+01/zi8n8S+Y1MjoRaQ80WU/G8MBlO+53VPXANrWm4wzGUVZUjjBJZVdhpcfkjsmcWaO+UEldXi1e+zq+HOsCpknYshuh8pOLISJun7TN0EIGW2xTnlOImeecnoGW4raxe2G1T3HEvfYUYMhG+gAFOAwh5nK8mZhwJMmN7r224QVsNFvZ87Z0qatvknklyPDK3Hy45PgVKXji52Wen4d4PlFVVYGnNap+fSpFbK90rYnhUc6n91Q3AY9E0tJOFrcfZtm/491XbcG/jsViUPPX76qmeuiz+qY1Hk7/1VPM405zWVuoheLUimpWYdVzCmUdKHebMdzgrYrb8mL2eeLSnRWHdonfZa8RsOU9F37w+591l5FLYHiOqWeHtE/lWrBHcRKp3uhtr8yXm8LU/5ms+NM6ZKsqu90cFZ4o58+k4rdrtB97NADFbwmEG7lXqvirhOTOqU14xuUF2myIjURcPHrPOQ4lmM3PeMg7bUuk0nnZi67bXsU6H8lhqIo8TaOrEafCO1ARK9PjC0QOoq2BxmMdgYB9G/lIb9++fqNJ2s7BHGFyBNmZAR8J3KCo012ikaSP8BCrf6VI0X5xdnbhHIO+B5rbOyB54zXkzfObyJ4ecwxfqBJMLFc7m59rNcw7hoHnFZ0b00zee+gTqvjm61Pb4xn0kcDX4jvHM0rBXZypG3DCKnD/Waa/ZtHmtFPgO5eETx+k7RrVg3aSwm2YoNXnCs3XPQDhNn+Fia6IlOOuIG6VJH7TP6ava26ehKHQa2T4N0tcZ9dPCGo3ZdnNltsHQbeYt5vPnJezV/cAeNypdml1vCHI8M81nSRP5Qi2+mI8v/sxiZru9187nRtp3f/42NemcONa+4eVC3PCZzc88aZh851CqSsshe70uPxeN/dmYwlwb3trwMrN1Gq8jbnApcVDx/yDPeYs5/7r62tsQ6lLg+DiFXTEhzR9dHqv0iT4tgj825W+H3XiRUNUZT2kR9Ri0+lp+UM3iQtS8uOE23Ly4KYtvqH13jghUntJRAewuzNLDXp8RxdcaA3cMY6TO2IeSFRXezeWIjCqyhsUdMYuCgYTZSKpBype1zRfq8FshvfBPc6BAQWl7/QxIDp3VGo1J3vn42OEs3qznws+YLRXbymyB19a9XBx6n/owcyxlEYyFWCi+kG9F+EyD/4yn80+agaZ9P7ay2Dny99aK2o91FkfEOY8hBwyfi5uwx2y5SaHmG+oq/zl1FX/8irOf8Y3vAcX/6uLP6A6nvMO24edSGPjQc827Rw2atX+z2bKq0CmW9mOtYnr5/AfDa1ZfPaXnKtlWborup7QYx+Or2uWb+N3N//2+yDcXMqIJdf55xl7/vsj4WoPPlxLxtVrkJ4w/tTe3mLdATOOYwxcq52w5Wxz5MbPdVs5O8/lhfE7dPj0bIiPQ3QV0iqm4m3YX8hRfc6jQ3fWepevMqUDJd86Z4vwM40CWHnn+WphsGHfieF02D3tmZvpWD+kBpNCFcLnZhcmmrhpGzzbdA+sQ1ar18OJD87IOKOFoRNznaHPNHUfUNhvY1iU+uhvEvpKHaUn3qK3exVVyX4joipp3um7FmYJWmA+WbIDshRpbVRx5/nqstCgy87FGbfVB8yDGCqS+2qCsnRwnSAN6zgzxfdB2nBT/vZ4/6uxb6oH8b4VBRxiIB93wLa47hG3w2SL/2Z27yOXJFwZpSJaBYyvajA7vRRYNKqljXKpt/CFD/tSMr18DKKbwB0xggBePatl1nki0yvqW5zchlyZmJ0OTxJ3D+fsYJs/mxYN5+Le5oagtcl+YsVvy8kSjI2YGvGjvmpkRS9W2dtXqWnVuxUhURm1lKtou/hdEq19VBp9OjGvHEQSmrpuf2R24mXGheil8KeiANY8fW1VERUfBImb64j12caBZmRViZHbeVMjCrPDg9A90IXrtnsYCuZtRQ0PyrKDjBNOsPfKsg1pA02gHlVr0OXiFhtp6nJqXVzcbfM0KnzC3ggOENPE9VBdmHKN6LYaijb4wXxJn5A0FSDF5j+h1ooZx885Jt3ZKzO5n7Z5WfNEOtyyPqQEnn7WLv5Fis3PdgMshjF1FRydbNyeBbyKI1oN1TRVrVK7kgsb/zjX4NDPIRMctVeaxVB38Vh1x5KbeJbU138AM5KzmZu3uny0ErygxiJF7GVXUrPzFxrlx1uFdAaZFDN9cvIb74qD9tzBMo7L7WIEYK+sla1DVMHpF0F7b3+Y6S+zjvLeDMCpapmJo1weBWuxKF3rOocih1gun4BoJh1kWnV/Jmiq6uOhK3VfKxEHEkafjLgK3oujaPzY6SXg8phhL4TNR1xvJd1Wa0aYFfPUMLrNBDCh4AuGRTbtKMc6Z1Udj8evY/ZpCuMAUefdo69DZUngoqE1P9A3PJfOf7WixCEj+Y6t7fYeHbbxUAoFV3M89cCKfma3fc1+jKRe7MFWEbQqEfyzO2x/wrO2VYH7iYdQ9BkPyI8/3kXBpLaCpU7eC0Yv/am/tEDu7HZpqg0EvHo0nf/R/gRzUWy33/HXMJQeu1GylKmOkXzlCfGFruAcPPhaGqZOtu19zsJ1SO2Jz4Ztth5cBX6mRQwWmDwryG9FUMlZzNckMdK+IoMJv1rOWnBamS2w2KHiaPMPLC15hCZm4KTpoZyj4E2TqC/P6r7/EhnDMhKicZZ1ZwxuC7DPzDGs53q8gXaI9kFTK+2LTq7bhwsTbrMV8Rsfua5lMS0FwbTitUVnVa1yTb5IX51mmYnUcP9wPr8Ji1tiYJeJV9GZTrQhF7vvdU2OTU42ogJ9FDwhmycI2LIg++03C6scYhUyUuMV5tkw6kGUoL+mjNC38+wMdWNljn6tGPpRES7veqrSn5TRuv+dh6JVL/iDHU1db4c9WK3++OrH3PqziF916UMUKn8G67nN60GfWiHrXYhUG3yVWmyYak59NHj8t1smG4UDiWz2rPHNrKnN4Zo1LBbr2/eF9YZ0n0blx2nG4X+EKFxvS3W28JESD+FWk61VCD3z/URGHiJl++7TdBwkCj6tGOH3qDb0QqcOF9Kzpj0HUb/KyFW3Yhj2VMKJqGZleFBH7vqvf7WqLC3XMuHV8q8a4sTFuxUtkD/6JIBvKaVjv96ndgruKZ1k/BHzqf2K9fLk7HGXANyLDd1vxkK/i055pnzl+zw6zLnwXlVYVtfmacJgEpRP1hbGgrYPVN6v2lG+idQNGmwcKXu/8xEj/P6qe/sB2WmwNp6pp8jaISMkwdleFXYK55NHWLTTbutSUqjBfDGWo/Yg918qQ+8BRZSAHZbfuNZz2O0sov1Ue4CWlVg3rFhM3Kljj9ksGd/NUhk4nH+a5UN2+1i8+NM3vRNp7uQ6sqexSCukEVlVZriHNqFi5rLm9TMWa4qm3idJqppQACol2l4VSuvWLfta4JcXy3bROPNbXOgdOhG47LC0CwW/dMlSx4Jf17aEU3yA1x9p+Yc0jupXgcMuYNku64iYOkGToVDuJvlbEKlJqsmiHbvNrIVZEH+yFdF8DbleZ6iNiWwMqvtMp/mSpwx5KxRrT9p3MAPTHGtMbfvdFhyj9vhaKcn3At8Lc16Ai+vBcSp1ztXi7rCJZx/ql7TXcclq6Q76UeKWDy9boS0WHIjUuWhPG8LBmW5y2rhuTpM5vsLt+HOLh1Yf0DqXa9tsfC+kaKt2htA0ai/L2i7RKoNjEwztkmRU0GfgW1TxUvPFhg0V7DdfWJk5gfrccpYv+MA9M0dkGTLECeYwUixRzjRFdmjG7zdZIl3XKB9YliNKI31lfa7i2JG5C8Ss+rHe0D7Z696/V3DEAOWHnQ9yNahMUl5kENWS6pHKKp2D1BaSrrHdE1w2qNxIztpXgUIrF0bm15YML4b6V1k+GpNysTahKMVrrS85lTVo9OGJ96I47eAy5rYWpRf/mIzeoYU1DKaQCTUVwrhHeyNoDqHel+lLxr9WKzhSYw7vrR6+V5q0pfi2k3L1zqkubY6rrd9ZLvSuWNf0uqnkY+FpTvFzSW9Fp0b9l8JA7THV9eCi/PY/SCZIUYx3BU2alj7Cm3VV6eYpios4b6WuNOJdYXUK3zTqj5CVG2FqYM4Z7CuIU0qO05XR0d71FHM0YhZmJmTRfLlXEumN82BGtzdX0S19t1e+bUieK8zRmqpa4Qc5TSjifmaQsY2ETLjhI36gMR1+7qpjdXXHiceUekfBaucHShAOiFXmv3sNmGQyU5iVgnoocuonQXEPTFwslHtS8R+A47StI9wj0iSrtbi5rMysczFiImsQ+bdFClnFjjpXXwMy6O7qfjOr8Fb0a7ODItisjnn3EQO16+ypd1cwyaAW5Yzxz5QknfMO7643fXW/I9y3U2xH27Oapqr56Z/tEzglj6IbT6HEHjopiXqeRbe5mQQvxtcbDOVverN0ZgMdzqRYRjaXtMRd56Q4cZSmdPvZJdSrhJ1D9zNXPqAEqPIavPdfubt5oke2kmv0dztIszSv2VYuoyf1UuopbsYb+uX9h6WpwjpgtZ6fNNawNJ4q8O3CFoSbioAaOSZMx2GYaPYB+rEb6qjQiNRFQ76TvwNFVKD+BhH9VhcKGsXzmMI7BptU/CNWolM7YzROvpFAntsiWJp6eR2d3GarcYShVYSUqhmYOWj5E96NK2WvmYNTeY7Zs4RUEdv9h9QT4EseKt6LzLrqEOs3hxAY1MaNWpSa6zZx8F3YOVeCYMS88W+CYHDuWe4yoc6YK+djDuEOrBR5lvh0r+Q9uM88lrjx9x9AtgpQVNE8r+3O6Gvw59D+kBF/UMXyhliYUtPjmvXGY6Dk3x+kEOW+GtdMVC4EZTqoS/jmR0P0LS75DOc/w2vnri97M4SdbZ8qeU7gg8DVbERkU5geaMQO3mYrSYyAngeUQqrN0C0/vsFmcgWNXNeidsTAj7/4MncJR0caaBUpbLK1yBCBNRjEv6KvuVSdpPnEMJdsRRtqJ+U8tN1gXA4ePHc6ZT0eviI73UOJF0fEZ8YaneAQqQdGphNvwM4nIqPnXxV0xA0fnCT+oAhJuyw/q8jO0y8CjSteZExwBpIN6SvNp6A5G/abi6egeND/1GTguhuNjaUbbnSbGd4L8937Ezm34Eyi6n1maeOBxh3PI0jzJDf5mh/BsLD7F2GOKvlA/5gtvxI3/eV4sLfKW5Wy+oio+es/u6T8UU+nsofy57Icb/JlZHPFtCgd/x+bwt3ZT+xXTtTtTrGAb4QehC6X9G+8YT+ozcLxDsdCjsuOqwPFnrdLYaFc92Ui0m4fr39lYmlCaqTit7G6O/3kWDkgtXjNH4BiEm/+jegQnihOtfffn33WxsFjhfMd48HT+f6o6X65j7XR8WLSHMFkxbvOYsrRsF1bowDuSQ18Mkxk4qz2zoGPL5fu9h2Hqmt1asl3Q3Yu3szOc+spiCmX4AETBM3pLoTYSp3sVxahyhL8eC4mPN9k2x3o0xkiixIzM3CZFzf5oR4mecQ5+ax2wCah3/crmnHoqR0+KMaOPxRif1oEFRFOO/kTPPmtww+NfMXxEK6gn6iU32U6fFruIz8Q4WgljtnaCVTBgWx7diUdshC9ZEa5yKpRBBeW12r/iNc/+EgNqmhswNB8SBoihHXeDF7rrWDLcmt3V8GYYN7pXRy4DZjj4DJuUBL5iC3DQAaoo4vkftqVTYRGLS3mHZ7gdmdTTqbgNN/PTdTCOTgXolc88MhXAEUMdX0iy1JMuk5wLsgeu0QUYlz2S4skTWwJz6pOm/8ihrmgGfFgri+ZWUK2gAPHgbWa8jaocdSuM4FJYoKicYX/ZSENkg9Q1ZzJfwScfVnR2DegOGwCvmogaWJCLQepv9WNlU6QgsmOwICquU28Mlk3d9W5E81lU/5Ez0LcX6lwKMWDNluNKfBDUy/phJgBcMnfkh9iRxrdOzgs08JdPB85Lwo+GUSb4t3nC+0byqMZtO2fQJ4U2zGIr49t/28qmmGv2RanDD7a3FEcdtutkW8twwwlUSpb8QalodddbBfNHKDQ828BdE7OBgFdiKYohLawFYqpybQoxATZrheLhdI7+0Zlu9Q1myRcd15r9UIm8K2LGJxqTegntqNVMKnf1a8zQiyUR1rxoqjiFxeHxqFcYUTHfDu7rhbWng6qOxOsI+5A1p9mRyEPdVkTlE24vY54W7bWc6jMgZvNXdfC9/9q7408KDsbdL7Utz7QFSDetz2picArzrdpL8OaCHC9V26RroemtDZ5yNM/KGkWMyTmfnInEvwtSD23UcFcjhaE3VKzkoaEMKGBft4XbIO6forTY1lmGQwVmKicBCiArDzE+1oIxE08fWeviIOD5TznqH+OoHadvoOP20drMPe5Irg3XBQziW2XDuHYzjqQQ4wySssjXUs5H+t3FWYMHppUnBHMx/nYIT5d7OmjDbgD9F6na3m4l7KdkeSO3kTEPXafiWinogag7b52taiZhL1TSvBFmEZafFq2H8khQaZXuitCewT5FBgVtPK0j4xUHPfUz3Q28eac1Z139DAP23dgki94EC8vbDPTQC97HPPSWjUNG5tWKMsaxAEMKC0665Xvo1Ntd07wCLNf8Q56mrEPVpCxlIMVlQlWRxM3oAfpgIc+8KC3rEXUog5g06vt7zgXY8grH7hhwVSaeuvC06YYRAwpbyk/Unzj9hLEZNs2oxPQB9yc+GnL6zTgq7rI++KDJwX2SP8Sd6YzTuw5lV/kU6eQxRD12omfQAW6caTR4LikYkBB1CMOrvgRr/VY75+NSB40Cni6bADAtaK+vyxVWpf9NeKJxN2KYQ8Q2xPB3K1s7fuhvWbr2XpgW044VD6DRs0qXoqKf1NFsaGvKJc47leUV3pppP/5VTKFhaGuol4Esfjf5zyCyUHmHthChcYh4hYLQF+AFWsuq4t0wJyWgdwQVOZiV0efRHPoK5+E1vjz9wTJmVkITC9oEstAsyZSgE/dbicwKr89YUxKZI+owD205Tm5lnnmDRuP/JnzxX3gMtlrcX0UesZdxyQqYQuEW4R51vmQ5xOZteUd8SJruMlTUzhtVw/Nq7eUBcqN2/HVotgfngif60yKEtoUx3WYOZlVJuJOh8u59fzSDPFYtQgqDUAGyGhQOAvKroXMcOYY0qjnStJR/G3aP+Jt1sLVlGV8POwr/6OGsqetnyF3TmTqZjENfnXh51oxe9qVUw2M78EzAJ+IM8lZ1MBPQ9ZWSVc4J3mWSrLKrMHReA5qdGoz0ODRsaA+vwxXA2cAM4qlfzBJA6581m4hzxItQw5dxrrBL3Y6kCbUcFxo1S8jyV44q//+7ASNNudZ6xeaNOSIUffqMn4A9lIjFctYn2gpEPAb3f7p3iIBN8H14FUGQ9ct2hPsL+cEsTgUrR47uJVN4n4wt/wgfwwHuOnLd4yobkofy8JvxSQTA7rMpDIc608SlZFJfZYcmbT0tAHpPE8MrtQ42siTUNWxqvWZOmvu9f0JPoQmg+6l7sZWwyfi6PXkxJnwBraUG0MYG4zYHQz3igy/XsFkx5tNQxw43qvI9dU3f0DdhOUlHKjmi1VAr2Kiy0HZwD8VeEbhh0OiDdMYspolQsYdSwjCcjeowIXNZVUPmL2wwIkYhmXKhGozdCJ4lRKbsf4NBh/XnQoS92NJEWOVOFs2YhN8c5QZFeK0pRdAG40hqvLbmoSA8xQmzOOEc7wLcme9JOsjPCEgpCwUs9E2DohMHRhUeyGIN6TFvrbny8nDuilsDpzrH5mS76APoIEJmItS67sQJ+nfwddzmjPxcBEBBCw0kWDwd0EZCkNeOD7NNQhtBm7KHL9mRxj6U1yWU2puzlIDtpYxdH4ZPeXBJkTGAJfUr/oTCz/iypY6uXaR2V1doPxJYlrw2ghH0D5gbrhFcIxzYwi4a/4hqVdf2DdxBp6vGYDjavxMAAoy+1+3aiO6S3W/QAKNVXagDtvsNtx7Ks+HKgo6U21B+QSZgIogV5Bt+BnXisdVfy9VyXV+2P5fMuvdpAjM1o/K9Z+XnE4EOCrue+kcdYHqAQ0/Y/OmNlQ6OI33jH/uD1RalPaHpJAm2av0/xtpqdXVKNDrc9F2izo23Wu7firgbURFDNX9eGGeYBhiypyXZft2j3hTvzE6PMWKsod//rEILDkzBXfi7xh0eFkfb3/1zzPK/PI5Nk3FbZyTl4mq5BfBoVoqiPHO4Q4QKZAlrQ3MdNfi3oxIjvsM3kAFv3fdufurqYR3PSwX/mpGy/GFI/B2MNPiNdOppWVbs/gjF3YH+QA9jMhlAbhvasAHstB0IJew09iAkmXHl1/TEj+jvHOpOGrPRQXbPADM+Ig2/OEcUcpgPTItMtW4DdqgfYVI/+4hAFWYjUGpOP/UwNuB7+BbKOcALbjobdgzeBQfjgNSp2GOpxzGLj70Vvq5cw2AoYENwKLUtJUX8sGRox4dVa/TN4xKwaKcl9XawQR/uNus700Hf17pyNnezrUgaY9e4MADhEDBpsJT6y1gDJs1q6wlwGhuUzGR7C8kgpjPyHWwsvrf3yn1zJEIRa5eSxoLAZOCR9xbuztxFRJW9ZmMYfCFJ0evm9F2fVnuje92Rc4Pl6A8bluN8MZyyJGZ0+sNSb//DvAFxC2BqlEsFwccWeAl6CyBcQV1bx4mQMBP1Jxqk1EUADNLeieS2dUFbQ/c/kvwItbZ7tx0st16viqd53WsRmPTKv2AD8CUnhtPWg5aUegNpsYgasaw2+EVooeNKmrW3MFtj76bYHJm5K9gpAXZXsE5U8DM8XmVOSJ1F1WnLy6nQup+jx52bAb+rCq6y9WXl2B2oZDhfDkW7H3oYfT/4xx5VncBuxMXP2lNfhUVQjSSzSRbuZFE4vFawlzveXxaYKVs8LpvAb8IRYF3ZHiRnm0ADeNPWocwxSzNseG7NrSEVZoHdKWqaGEBz1N8Pt7kFbqh3LYmAbm9i1IChIpLpM5AS6mr6OAPHMwwznVy61YpBYX8xZDN/a+lt7n+x5j4bNOVteZ8lj3hpAHSx1VR8vZHec4AHO9XFCdjZ9eRkSV65ljMmZVzaej2qFn/qt1lvWzNZEfHxK3qOJrHL6crr0CRzMox5f2e8ALBB4UGFZKA3tN6F6IXd32GTJXGQ7DTi9j/dNcLF9jCbDcWGKxoKTYblIwbLDReL00LRcDPMcQuXLMh5YzgtfjkFK1DP1iDzzYYVZz5M/kWYRlRpig1htVRjVCknm+h1M5LiEDXOyHREhvzCGpFZjHS0RsK27o2avgdilrJkalWqPW3D9gmwV37HKmfM3F8YZj2ar+vHFvf3B8CRoH4kDHIK9mrAg+owiEwNjjd9V+FsQKYR8czJrUkf7Qoi2YaW6EVDZp5zYlqiYtuXOTHk4fAcZ7qBbdLDiJq0WNV1l2+Hntk1mMWvxrYmc8kIx8G3rW36J6Ra4lLrTOCgiOihmow+YnzUT19jbV2B3RWqSHyxkhmgsBqMYWvOcUom1jDQ436+fcbu3xf2bbeqU/ca+C4DOKE+e3qvmeMqW3AxejfzBRFVcwVYPq4L0APSWWoJu+5UYX4qg5U6YTioqQGPG9XrnuZ/BkxuYpe6Li87+18EskyQW/uA+uk2rpHpr6hut2TlVbKgWkFpx+AZffweiw2+VittkEyf/ifinS/0ItRL2Jq3tQOcxPaWO2xrG68GdFoUpZgFXaP2wYVtRc6xYCfI1CaBqyWpg4bx8OHBQwsV4XWMibZZ0LYjWEy2IxQ1mZrf1/UNbYCJplWu3nZ4WpodIGVA05d+RWSS+ET9tH3RfGGmNI1cIY7evZZq7o+a0bjjygpmR3mVfalkT/SZGT27Q8QGalwGlDOS9VHCyFAIL0a1Q7JiW3saz9gqY8lqKynFrPCzxkU4SIfLc9VfCI5edgRhDXs0edO992nhTKHriREP1NJC6SROMgQ0xO5kNNZOhMOIT99AUElbxqeZF8A3xrfDJsWtDnUenAHdYWSwAbYjFqQZ+D5gi3hNK8CSxU9i6f6ClL9IGlj1OPMQAsr84YG6ijsJpCaGWj75c3yOZKBB9mNpQNPUKkK0D6wgLH8MGoyRxTX6Y05Q4AnYNXMZwXM4eij/9WpsM/9CoRnFQXGR6MEaY+FXvXEO3RO0JaStk6OXuHVATHJE+1W+TU3bSZ2ksMtqjO0zfSJCdBv7y2d8DMx6TfVme3q0ZpTKMMu4YL/t7ciTNtdDkwPogh3Cnjx7qk08SHwf+dksZ7M2vCOlfsF0hQ6J4ehPCaHTNrM/zBSOqD83dBEBCW/F/LEmeh0nOHd7oVl3/Qo/9GUDkkbj7yz+9cvvu+dDAtx8NzCDTP4iKdZvk9MWiizvtILLepysflSvTLFBZ37RLwiriqyRxYv/zrgFd/9XVHh/OmzBvDX4mitMR/lUavs2Vx6cR94lzAkplm3IRNy4TFfu47tuYs9EQPIPVta4P64tV+sZ7n3ued3cgEx2YK+QL5+xms6osk8qQbTyuKVGdaX9FQqk6qfDnT5ykxk0VK7KZ62b6DNDUfQlqGHxSMKv1P0XN5BqMeKG1P4Wp5QfZDUCEldppoX0U6ss2jIko2XpURKCIhfaOqLPfShdtS37ZrT+jFRSH2xYVV1rmT/MBtRQhxiO4MQ3iAGlaZi+9PWBEIXOVnu9jN1f921lWLZky9bqbM3J2MAAI9jmuAx3gyoEUa6P2ivs0EeNv/OR+AX6q5SW6l5HaoFuS6jr6yg9limu+P0KYKzfMXWcQSfTXzpOzKEKpwI3YGXZpSSy2LTlMgfmFA3CF6R5c9xWEtRuCg2ZPUQ2Nb6dRFTNd4TfGHrnEWSKHPuRyiJSDAZ+KX0VxmSHjGPbQTLVpqixia2uyhQ394gBMt7C3ZAmxn/DJS+l1fBsAo2Eir/C0jG9csd4+/tp12pPc/BVJGaK9mfvr7M/CeztrmCO5qY06Edi4xAGtiEhnWAbzLy2VEyazE1J5nPmgU4RpW4Sa0TnOT6w5lgt3/tMpROigHHmexBGAMY0mdcDbDxWIz41NgdD6oxgHsJRgr5RnT6wZAkTOcStU4NMOQNemSO7gxGahdEsC+NRVGxMUhQmmM0llWRbbmFGHzEqLM4Iw0H7577Kyo+Zf+2cUFIOw93gEY171vQaM0HLwpjpdRR6Jz7V0ckE7XzYJ0TmY9znLdzkva0vNrAGGT5SUZ5uaHDkcGvI0ySpwkasEgZPMseYcu85w8HPdSNi+4T6A83iAwDbxgeFcB1ZM2iGXzFcEOUlYVrEckaOyodfvaYSQ7GuB4ISE0nYJc15X/1ciDTPbPCgYJK55VkEor4LvzL9S2WDy4xj+6FOqVyTAC2ZNowheeeSI5hA/02l8UYkv4nk9iaVn+kCVEUstgk5Hyq+gJm6R9vG3rhuM904he/hFmNQaUIATB1y3vw+OmxP4X5Yi6A5I5jJufHCjF9+AGNwnEllZjUco6XhsO5T5+R3yxz5yLVOnAn0zuS+6zdj0nTJbEZCbXJdtpfYZfCeCOqJHoE2vPPFS6eRLjIJlG69X93nfR0mxSFXzp1Zc0lt/VafDaImhUMtbnqWVb9M4nGNQLN68BHP7AR8Il9dkcxzmBv8PCZlw9guY0lurbBsmNYlwJZsA/B15/HfkbjbwPddaVecls/elmDHNW2r4crAx43feNkfRwsaNq/yyJ0d/p5hZ6AZajz7DBfUok0ZU62gCzz7x8eVfJTKA8IWn45vINLSM1q+HF9CV9qF3zP6Ml21kPPL3CXzkuYUlnSqT+Ij4tI/od5KwIs+tDajDs64owN7tOAd6eucGz+KfO26iNcBFpbWA5732bBNWO4kHNpr9D955L61bvHCF/mwSrz6eQaDjfDEANqGMkFc+NGxpKZzCD2sj/JrHd+zlPQ8Iz7Q+2JVIiVCuCKoK/hlAEHzvk/Piq3mRL1rT/fEh9hoT5GJmeYswg1otiKydizJ/fS2SeKHVu6Z3JEHjiW8NaTQgP5xdBli8nC57XiN9hrquBu99hn9zqwo92+PM2JXtpeVZS0PdqR5mDyDreMMtEws+CpwaRyyzoYtfcvt9PJIW0fJVNNi/FFyRsea7peLvJrL+5b4GOXJ8tAr+ATk9f8KmiIsRhqRy0vFzwRV3Z5dZ3QqIU8JQ/uQpkJbjMUMFj2F9sCFeaBjI4+fL/oN3+LQgjI4zuAfQ+3IPIPFQBccf0clJpsfpnBxD84atwtupkGqKvrH7cGNl/QcWcSi6wcVDML6ljOgYbo+2BOAWNNjlUBPiyitUAwbnhFvLbnqw42kR3Yp2kv2dMeDdcGOX5kT4S6M44KHEB/SpCfl7xgsUvs+JNY9G3O2X/6FEt9FyAn57lrbiu+tl83sCymSvq9eZbe9mchL7MTf/Ta78e80zSf0hYY5eUU7+ff14jv7Xy8qjzfzzzvaJnrIdvFb5BLWKcWGy5/w7+vV2cvIfwHqdTB+RuJK5oj9mbt0Hy94AmjMjjwYNZlNS6uiyxNnwNyt3gdreLb64p/3+08nXkb92LTkkRgFOwk1oGEVllcOj5lv1hfAZywDows0944U8vUFw+A/nuVq/UCygsrmWIBnHyU01d0XJPwriEOvx/ISK6Pk4y2w0gmojZs7lU8TtakBAdne4v/aNxmMpK4VcGMp7si0yqsiolXRuOi1Z1P7SqD3Zmp0CWcyK4Ubmp2SXiXuI5nGLCieFHKHNRIlcY3Pys2dwMTYCaqlyWSITwr2oGXvyU3h1Pf8eQ3w1bnD7ilocVjYDkcXR3Oo1BXgMLTUjNw2xMVwjtp99NhSVc5aIWrDQT5DHPKtCtheBP4zHcw4dz2eRdTMamhlHhtfgqJJHI7NGDUw1XL8vsSeSHyKqDtqoAmrQqsYwvwi7HW3ojWyhIa5oz5xJTaq14NAzFLjVLR12rRNUQ6xohDnrWFb5bG9yf8aCD8d5phoackcNJp+Dw3Due3RM+5Rid7EuIgsnwgpX0rUWh/nqPtByMhMZZ69NpgvRTKZ62ViZ+Q7Dp5r4K0d7EfJuiy06KuIYauRh5Ecrhdt2QpTS1k1AscEHvapNbU3HL1F2TFyR33Wxb5MvH5iZsrn3SDcsxlnnshO8PLwmdGN+paWnQuORtZGX37uhFT64SeuPsx8UOokY6ON85WdQ1dki5zErsJGazcBOddWJEKqNPiJpsMD1GrVLrVY+AOdPWQneTyyP1hRX/lMM4ZogGGOhYuAdr7F/DOiAoc++cn5vlf0zkMUJ40Z1rlgv9BelPqVOpxKeOpzKdF8maK+1Vv23MO9k/8+qpLoxrIGH2EDQlnGmH8CD31G8QqlyQIcpmR5bwmSVw9/Ns6IHgulCRehvZ/+VrM60Cu/r3AontFfrljew74skYe2uyn7JKQtFQBQRJ9ryGic/zQOsbS4scUBctA8cPToQ3x6ZBQu6DPu5m1bnCtP8TllLYA0UTQNVqza5nfew3Mopy1GPUwG5jsl0OVXniPmAcmLqO5HG8Hv3nSLecE9oOjPDXcsTxoCBxYyzBdj4wmnyEV4kvFDunipS8SSkvdaMnTBN9brHUR8xdmmEAp/Pdqk9uextp1t+JrtXwpN/MG2w/qhRMpSNxQ1uhg/kKO30eQ/FyHUDkWHT8V6gGRU4DhDMxZu7xXij9Ui6jlpWmQCqJg3FkOTq3WKneCRYZxBXMNAVLQgHXSCGSqNdjebY94oyIpVjMYehAiFx/tqzBXFHZaL5PeeD74rW5OysFoUXY8sebUZleFTUa/+zBKVTFDopTReXNuZq47QjkWnxjirCommO4L/GrFtVV21EpMyw8wyThL5Y59d88xtlx1g1ttSICDwnof6lt/6zliPzgVUL8jWBjC0o2D6Kg+jNuThkAlaDJsq/AG2aKA//A76avw2KNqtv223P+Wq3StRDDNKFFgtsFukYt1GFDWooFVXitaNhb3RCyJi4cMeNjROiPEDb4k+G3+hD8tsg+5hhmSc/8t2JTSwYoCzAI75doq8QTHe+E/Tw0RQSUDlU+6uBeNN3h6jJGX/mH8oj0i3caCNsjvTnoh73BtyZpsflHLq6AfwJNCDX4S98h4+pCOhGKDhV3rtkKHMa3EG4J9y8zFWI4UsfNzC/Rl5midNn7gwoN9j23HGCQQ+OAZpTTPMdiVow740gIyuEtd0qVxMyNXhHcnuXRKdw5wDUSL358ktjMXmAkvIB73BLa1vfF9BAUZInPYJiwxqFWQQBVk7gQH4ojfUQ/KEjn+A/WR6EEe4CtbpoLe1mzHkajgTIoE0SLDHVauKhrq12zrAXBGbPPWKCt4DGedq3JyGRbmPFW32bE7T20+73BatV/qQhhBWfWBFHfhYWXjALts38FemnoT+9bn1jDBMcUMmYgSc0e7GQjv2MUBwLU8ionCpgV+Qrhg7iUIfUY6JFxR0Y+ZTCPM+rVuq0GNLyJXX6nrUTt8HzFBRY1E/FIm2EeVA9NcXrj7S6YYIChVQCWr/m2fYUjC4j0XLkzZ8GCSLfmkW3PB/xq+nlXsKVBOj7vTvqKCOMq7Ztqr3cQ+N8gBnPaAps+oGwWOkbuxnRYj/x/WjiDclVrs22xMK4qArE1Ztk1456kiJriw6abkNeRHogaPRBgbgF9Z8i/tbzWELN4CvbqtrqV9TtGSnmPS2F9kqOIBaazHYaJ9bi3AoDBvlZasMluxt0BDXfhp02Jn411aVt6S4TUB8ZgFDkI6TP6gwPY85w+oUQSsjIeXVminrwIdK2ZAawb8Se6XOJbOaliQxHSrnAeONDLuCnFejIbp4YDtBcQCwMsYiRZfHefuEJqJcwKTTJ8sx5hjHmJI1sPFHOr6W9AhZ2NAod38mnLQk1gOz2LCAohoQbgMbUK9RMEA3LkiF7Sr9tLZp6lkciIGhE2V546w3Mam53VtVkGbB9w0Yk2XiRnCmbpxmHr2k4eSC0RuNbjNsUfDIfc8DZvRvgUDe1IlKdZTzcT4ZGEb53dp8VtsoZlyXzLHOdAbsp1LPTVaHvLA0GYDFMbAW/WUBfUAdHwqLFAV+3uHvYWrCfhUOR2i89qvCBoOb48usAGdcF2M4aKn79k/43WzBZ+xR1L0uZfia70XP9soQReeuhZiUnXFDG1T8/OXNmssTSnYO+3kVLAgeiY719uDwL9FQycgLPessNihMZbAKG7qwPZyG11G1+ZA3jAX2yddpYfmaKBlmfcK/V0mwIRUDC0nJSOPUl2KB8h13F4dlVZiRhdGY5farwN+f9hEb1cRi41ZcGDn6Xe9MMSTOY81ULJyXIHSWFIQHstVYLiJEiUjktlHiGjntN5/btB8Fu+vp28zl2fZXN+dJDyN6EXhS+0yzqpl/LSJNEUVxmu7BsNdjAY0jVsAhkNuuY0E1G48ej25mSt+00yPbQ4SRCVkIwb6ISvYtmJRPz9Zt5dk76blf+lJwAPH5KDF+vHAmACLoCdG2Adii6dOHnNJnTmZtoOGO8Q1jy1veMw6gbLFToQmfJa7nT7Al89mRbRkZZQxJTKgK5Kc9INzmTJFp0tpAPzNmyL/F08bX3nhCumM/cR/2RPn9emZ3VljokttZD1zVWXlUIqEU7SLk5I0lFRU0AcENXBYazNaVzsVHA/sD3o9hm42wbHIRb/BBQTKzAi8s3+bMtpOOZgLdQzCYPfX3UUxKd1WYVkGH7lh/RBBgMZZwXzU9+GYxdBqlGs0LP+DZ5g2BWNh6FAcR944B+K/JTWI3t9YyVyRhlP4CCoUk/mmF7+r2pilVBjxXBHFaBfBtr9hbVn2zDuI0kEOG3kBx8CGdPOjX1ph1POOZJUO1JEGG0jzUy2tK4X0CgVNYhmkqqQysRNtKuPdCJqK3WW57kaV17vXgiyPrl4KEEWgiGF1euI4QkSFHFf0TDroQiLNKJiLbdhH0YBhriRNCHPxSqJmNNoketaioohqMglh6wLtEGWSM1EZbQg72h0UJAIPVFCAJOThpQGGdKfFovcwEeiBuZHN2Ob4uVM7+gwZLz1D9E7ta4RmMZ24OBBAg7Eh6dLXGofZ4U2TFOCQMKjwhVckjrydRS+YaqCw1kYt6UexuzbNEDyYLTZnrY1PzsHZJT4U+awO2xlqTSYu6n/U29O2wPXgGOEKDMSq+zTUtyc8+6iLp0ivav4FKx+xxVy4FxhIF/pucVDqpsVe2jFOfdZhTzLz2QjtzvsTCvDPU7bzDH2eXVKUV9TZ+qFtaSSxnYgYdXKwVreIgvWhT9eGDB2OvnWyPLfIIIfNnfIxU8nW7MbcH05nhlsYtaW9EZRsxWcKdEqInq1DiZPKCz7iGmAU9/ccnnQud2pNgIGFYOTAWjhIrd63aPDgfj8/sdlD4l+UTlcxTI9jbaMqqN0gQxSHs60IAcW3cH4p3V1aSciTKB29L1tz2eUQhRiTgTvmqc+sGtBNh4ky0mQJGsdycBREP+fAaSs1EREDVo5gvgi5+aCN7NECw30owbCc1mSpjiahyNVwJd1jiGgzSwfTpzf2c5XJvG/g1n0fH88KHNnf+u7ZiRMlXueSIsloJBUtW9ezvsx9grfsX/FNxnbxU1Lvg0hLxixypHKGFAaPu0xCD8oDTeFSyfRT6s8109GMUZL8m2xXp8X2dpPCWWdX84iga4BrTlOfqox4shqEgh/Ht4qRst52cA1xOIUuOxgfUivp6v5f8IVyaryEdpVk72ERAwdT4aoY1usBgmP+0m06Q216H/nubtNYxHaOIYjcach3A8Ez/zc0KcShhel0HCYjFsA0FjYqyJ5ZUH1aZw3+zWC0hLpM6GDfcAdn9fq2orPmZbW6XXrf+Krc9RtvII5jeD3dFoT1KwZJwxfUMvc5KLfn8rROW23Jw89sJ2a5dpB3qWDUBWF2iX8OCuKprHosJ2mflBR+Wqs86VvgI/XMnsqb97+VlKdPVysczPj8Jhzf+WCvGBHijAqYlavbF60soMWlHbvKT+ScvhprgeTln51xX0sF+Eadc/l2s2a5BgkVbHYyz0E85p0LstqH+gEGiR84nBRRFIn8hLSZrGwqjZ3E29cuGi+5Z5bp7EM8MWFa9ssS/vy4VrDfECSv7DSU84DaP0sXI3Ap4lWznQ65nQoTKRWU30gd7Nn8ZowUvGIx4aqyXGwmA/PB4qN8msJUODezUHEl0VP9uo+cZ8vPFodSIB4C7lQYjEFj8yu49C2KIV3qxMFYTevG8KqAr0TPlkbzHHnTpDpvpzziAiNFh8xiT7C/TiyH0EguUw4vxAgpnE27WIypV+uFN2zW7xniF/n75trs9IJ5amB1zXXZ1LFkJ6GbS/dFokzl4cc2mamVwhL4XU0Av5gDWAl+aEWhAP7t2VIwU+EpvfOPDcLASX7H7lZpXA2XQfbSlD4qU18NffNPoAKMNSccBfO9YVVgmlW4RydBqfHAV7+hrZ84WJGho6bNT0YMhxxLdOx/dwGj0oyak9aAkNJ8lRJzUuA8sR+fPyiyTgUHio5+Pp+YaKlHrhR41jY5NESPS3x+zTMe0S2HnLOKCOQPpdxKyviBvdHrCDRqO+l96HhhNBLXWv4yEMuEUYo8kXnYJM8oIgVM4XJ+xXOev4YbWeqsvgq0lmw4/PiYr9sYLt+W5EAuYSFnJEan8CwJwbtASBfLBBpJZiRPor/aCJBZsM+MhvS7ZepyHvU8m5WSmaZnxuLts8ojl6KkS8oSAHkq5GWlCB/NgJ5W3rO2Cj1MK7ahxsCrbTT3a0V/QQH+sErxV4XUWDHx0kkFy25bPmBMBQ6BU3HoHhhYcJB9JhP6NXUWKxnE0raXHB6U9KHpWdQCQI72qevp5fMzcm+AvC85rsynVQhruDA9fp9COe7N56cg1UKGSas89vrN+WlGLYTwi5W+0xYdKEGtGCeNJwXKDU0XqU5uQYnWsMwTENLGtbQMvoGjIFIEMzCRal4rnBAg7D/CSn8MsCvS+FDJJAzoiioJEhZJgAp9n2+1Yznr7H+6eT4YkJ9Mpj60ImcW4i4iHDLn9RydB8dx3QYm3rsX6n4VRrZDsYK6DCGwkwd5n3/INFEpk16fYpP6JtMQpqEMzcOfQGAHXBTEGzuLJ03GYQL9bmV2/7ExDlRf+Uvf1sM2frRtCWmal12pMgtonvSCtR4n1CLUZRdTHDHP1Otwqd+rcdlavnKjUB/OYXQHUJzpNyFoKpQK+2OgrEKpGyIgIBgn2y9QHnTJihZOpEvOKIoHAMGAXHmj21Lym39Mbiow4IF+77xNuewziNVBxr6KD5e+9HzZSBIlUa/AmsDFJFXeyrQakR3FwowTGcADJHcEfhGkXYNGSYo4dh4bxwLM+28xjiqkdn0/3R4UEkvcBrBfn/SzBc1XhKM2VPlJgKSorjDac96V2UnQYXl1/yZPT4DVelgO+soMjexXwYO58VLl5xInQUZI8jc3H2CPnCNb9X05nOxIy4MlecasTqGK6s2az4RjpF2cQP2G28R+7wDPsZDZC/kWtjdoHC7SpdPmqQrUAhMwKVuxCmYTiD9q/O7GHtZvPSN0CAUQN/rymXZNniYLlJDE70bsk6Xxsh4kDOdxe7A2wo7P9F5YvqqRDI6brf79yPCSp4I0jVoO4YnLYtX5nzspR5WB4AKOYtR1ujXbOQpPyYDvfRE3FN5zw0i7reehdi7yV0YDRKRllGCGRk5Yz+Uv1fYl2ZwrnGsqsjgAVo0xEUba8ohjaNMJNwTwZA/wBDWFSCpg1eUH8MYL2zdioxRTqgGQrDZxQyNzyBJPXZF0+oxITJAbj7oNC5JwgDMUJaM5GqlGCWc//KCIrI+aclEe4IA0uzv7cuj6GCdaJONpi13O544vbtIHBF+A+JeDFUQNy61Gki3rtyQ4aUywn6ru314/dkGiP8Iwjo0J/2Txs49ZkwEl4mx+iYUUO55I6pJzU4P+7RRs+DXZkyKUYZqVWrPF4I94m4Wx1tXeE74o9GuX977yvJ/jkdak8+AmoHVjI15V+WwBdARFV2IPirJgVMdsg1Pez2VNHqa7EHWdTkl3XTcyjG9BiueWFvQfXI8aWSkuuRmqi/HUuzqyvLJfNfs0txMqldYYflWB1BS31WkuPJGGwXUCpjiQSktkuBMWwHjSkQxeehqw1Kgz0Trzm7QbtgxiEPDVmWCNCAeCfROTphd1ZNOhzLy6XfJyG6Xgd5MCAZw4xie0Sj5AnY1/akDgNS9YFl3Y06vd6FAsg2gVQJtzG7LVq1OH2frbXNHWH/NY89NNZ4QUSJqL2yEcGADbT38X0bGdukqYlSoliKOcsSTuqhcaemUeYLLoI8+MZor2RxXTRThF1LrHfqf/5LcLAjdl4EERgUysYS2geE+yFdasU91UgUDsc2cSQ1ZoT9+uLOwdgAmifwQqF028INc2IQEDfTmUw3eZxvz7Ud1z3xc1PQfeCvfKsB9jOhRj7rFyb9XcDWLcYj0bByosychMezMLVkFiYcdBBQtvI6K0KRuOZQH2kBsYHJaXTkup8F0eIhO1/GcIwWKpr2mouB7g5TUDJNvORXPXa/mU8bh27TAZYBe2sKx4NSv5OjnHIWD2RuysCzBlUfeNXhDd2jxnHoUlheJ3jBApzURy0fwm2FwwsSU0caQGl0Kv8hopRQE211NnvtLRsmCNrhhpEDoNiZEzD2QdJWKbRRWnaFedXHAELSN0t0bfsCsMf0ktfBoXBoNA+nZN9+pSlmuzspFevmsqqcMllzzvkyXrzoA+Ryo1ePXpdGOoJvhyru+EBRsmOp7MXZ0vNUMUqHLUoKglg1p73sWeZmPc+KAw0pE2zIsFFE5H4192KwDvDxdxEYoDBDNZjbg2bmADTeUKK57IPD4fTYF4c6EnXx/teYMORBDtIhPJneiZny7Nv/zG+YmekIKCoxr6kauE2bZtBLufetNG0BtBY7f+/ImUypMBvdWu/Q7vTMRzw5aQGZWuc1V0HEsItFYMIBnoKGZ0xcarba/TYZq50kCaflFysYjA4EDKHqGdpYWdKYmm+a7TADmW35yfnOYpZYrkpVEtiqF0EujI00aeplNs2k+qyFZNeE3CDPL9P6b4PQ/kataHkVpLSEVGK7EX6rAa7IVNrvZtFvOA6okKvBgMtFDAGZOx88MeBcJ8AR3AgUUeIznAN6tjCUipGDZONm1FjWJp4A3QIzSaIOmZ7DvF/ysYYbM/fFDOV0jntAjRdapxJxL0eThpEhKOjCDDq2ks+3GrwxqIFKLe1WdOzII8XIOPGnwy6LKXVfpSDOTEfaRsGujhpS4hBIsMOqHbl16PJxc4EkaVu9wpEYlF/84NSv5Zum4drMfp9yXbzzAOJqqS4YkI4cBrFrC7bMPiCfgI3nNZAqkk3QOZqR+yyqx+nDQKBBBZ7QKrfGMCL+XpqFaBJU0wpkBdAhbR4hJsmT5aynlvkouoxm/NjD5oe6BzVIO9uktM+/5dEC5P7vZvarmuO/lKXz4sBabVPIATuKTrwbJP8XUkdM6uEctHKXICUJGjaZIWRbZp8czquQYfY6ynBUCfIU+gG6wqSIBmYIm9pZpXdaL121V7q0VjDjmQnXvMe7ysoEZnZL15B0SpxS1jjd83uNIOKZwu5MPzg2NhOx3xMOPYwEn2CUzbSrwAs5OAtrz3GAaUkJOU74XwjaYUmGJdZBS1NJVkGYrToINLKDjxcuIlyfVsKQSG/G4DyiO2SlQvJ0d0Ot1uOG5IFSAkq+PRVMgVMDvOIJMdqjeCFKUGRWBW9wigYvcbU7CQL/7meF2KZAaWl+4y9uhowAX7elogAvItAAxo2+SFxGRsHGEW9BnhlTuWigYxRcnVUBRQHV41LV+Fr5CJYV7sHfeywswx4XMtUx6EkBhR+q8AXXUA8uPJ73Pb49i9KG9fOljvXeyFj9ixgbo6CcbAJ7WHWqKHy/h+YjBwp6VcN7M89FGzQ04qbrQtgrOFybg3gQRTYG5xn73ArkfQWjCJROwy3J38Dx/D7jOa6BBNsitEw1wGq780EEioOeD+ZGp2J66ADiVGMayiHYucMk8nTK2zzT9CnEraAk95kQjy4k0GRElLL5YAKLQErJ5rp1eay9O4Fb6yJGm9U4FaMwPGxtKD6odIIHKoWnhKo1U8KIpFC+MVn59ZXmc7ZTBZfsg6FQ8W10YfTr4u0nYrpHZbZ1jXiLmooF0cOm0+mPnJBXQtepc7n0BqOipNCqI6yyloTeRShNKH04FIo0gcMk0H/xThyN4pPAWjDDkEp3lNNPRNVfpMI44CWRlRgViP64eK0JSRp0WUvCWYumlW/c58Vcz/yMwVcW5oYb9+26TEhwvbxiNg48hl1VI1UXTU//Eta+BMKnGUivctfL5wINDD0giQL1ipt6U7C9cd4+lgqY2lMUZ02Uv6Prs+ZEZer7ZfWBXVghlfOOrClwsoOFKzWEfz6RZu1eCs+K8fLvkts5+BX0gyrFYve0C3qHrn5U/Oh6D/CihmWIrY7HUZRhJaxde+tldu6adYJ+LeXupQw0XExC36RETdNFxcq9glMu4cNQSX9cqR/GQYp+IxUkIcNGWVU7ZtGa6P3XAyodRt0XeS3Tp01AnCh0ZbUh4VrSZeV9RWfSoWyxnY3hzcZ30G/InDq4wxRrEejreBxnhIQbkxenxkaxl+k7eLUQkUR6vKJ2iDFNGX3WmVA1yaOH+mvhBd+sE6vacQzFobwY5BqEAFmejwW5ne7HtVNolOUgJc8CsUxmc/LBi8N5mu9VsIA5HyErnS6zeCz7VLI9+n/hbT6hTokMXTVyXJRKSG2hd2labXTbtmK4fNH3IZBPreSA4FMeVouVN3zG5x9CiGpLw/3pceo4qGqp+rVp+z+7yQ98oEf+nyH4F3+J9IheDBa94Wi63zJbLBCIZm7P0asHGpIJt3PzE3m0S4YIWyXBCVXGikj8MudDPB/6Nm2v4IxJ5gU0ii0guy5SUHqGUYzTP0jIJU5E82RHUXtX4lDdrihBLdP1YaG1AGUC12rQKuIaGvCpMjZC9bWSCYnjDlvpWbkdXMTNeBHLKiuoozMGIvkczmP0aRJSJ8PYnLCVNhKHXBNckH79e8Z8Kc2wUej4sQZoH8qDRGkg86maW/ZQWGNnLcXmq3FlXM6ssR/3P6E/bHMvm6HLrv1yRixit25JsH3/IOr2UV4BWJhxXW5BJ6Xdr07n9kF3ZNAk6/Xpc5MSFmYJ2R7bdL8Kk7q1OU9Elg/tCxJ8giT27wSTySF0GOxg4PbYJdi/Nyia9Nn89CGDulfJemm1aiEr/eleGSN+5MRrVJ4K6lgyTTIW3i9cQ0dAi6FHt0YMbH3wDSAtGLSAccezzxHitt1QdhW36CQgPcA8vIIBh3/JNjf/Obmc2yzpk8edSlS4lVdwgW5vzbYEyFoF4GCBBby1keVNueHAH+evi+H7oOVfS3XuPQSNTXOONAbzJeSb5stwdQHl1ZjrGoE49I8+A9j3t+ahhQj74FCSWpZrj7wRSFJJnnwi1T9HL5qrCFW/JZq6P62XkMWTb+u4lGpKfmmwiJWx178GOG7KbrZGqyWwmuyKWPkNswkZ1q8uptUlviIi+AXh2bOOTOLsrtNkfqbQJeh24reebkINLkjut5r4d9GR/r8CBa9SU0UQhsnZp5cP+RqWCixRm7i4YRFbtZ4EAkhtNa6jHb6gPYQv7MKqkPLRmX3dFsK8XsRLVZ6IEVrCbmNDc8o5mqsogjAQfoC9Bc7R6gfw03m+lQpv6kTfhxscDIX6s0w+fBxtkhjXAXr10UouWCx3C/p/FYwJRS/AXRKkjOb5CLmK4XRe0+xeDDwVkJPZau52bzLEDHCqV0f44pPgKOkYKgTZJ33fmk3Tu8SdxJ02SHM8Fem5SMsWqRyi2F1ynfRJszcFKykdWlNqgDA/L9lKYBmc7Zu/q9ii1FPF47VJkqhirUob53zoiJtVVRVwMR34gV9iqcBaHbRu9kkvqk3yMpfRFG49pKKjIiq7h/VpRwPGTHoY4cg05X5028iHsLvUW/uz+kjPyIEhhcKUwCkJAwbR9pIEGOn8z6svAO8i89sJ3dL5qDWFYbS+HGPRMxYwJItFQN86YESeJQhn2urGiLRffQeLptDl8dAgb+Tp47UQPxWOw17OeChLN1WnzlkPL1T5O+O3Menpn4C3IY5LEepHpnPeZHbvuWfeVtPlkH4LZjPbBrkJT3NoRJzBt86CO0Xq59oQ+8dsm0ymRcmQyn8w71mhmcuEI5byuF+C88VPYly2sEzjlzAQ3vdn/1+Hzguw6qFNNbqenhZGbdiG6RwZaTG7jTA2X9RdXjDN9yj1uQpyO4Lx8KRAcZcbZMafp4wPOd5MdXoFY52V1A8M9hi3sso93+uprE0qYNMjkE22CvK4HuUxqN7oIz5pWuETq1lQAjqlSlqdD2Rnr/ggp/TVkQYjn9lMfYelk2sH5HPdopYo7MHwlV1or9Bxf+QCyLzm92vzG2wjiIjC/ZHEJzeroJl6bdFPTpZho5MV2U86fLQqxNlGIMqCGy+9WYhJ8ob1r0+Whxde9L2PdysETv97O+xVw+VNN1TZSQN5I6l9m5Ip6pLIqLm4a1B1ffH6gHyqT9p82NOjntRWGIofO3bJz5GhkvSWbsXueTAMaJDou99kGLqDlhwBZNEQ4mKPuDvVwSK4WmLluHyhA97pZiVe8g+JxmnJF8IkV/tCs4Jq/HgOoAEGR9tCDsDbDmi3OviUQpG5D8XmKcSAUaFLRXb2lmJTNYdhtYyfjBYZQmN5qT5CNuaD3BVnlkCk7bsMW3AtXkNMMTuW4HjUERSJnVQ0vsBGa1wo3Qh7115XGeTF3NTz8w0440AgU7c3bSXO/KMINaIWXd0oLpoq/0/QJxCQSJ9XnYy1W7TYLBJpHsVWD1ahsA7FjNvRd6mxCiHsm8g6Z0pnzqIpF1dHUtP2ITU5Z1hZHbu+L3BEEStBbL9XYvGfEakv1bmf+bOZGnoiuHEdlBnaChxYKNzB23b8sw8YyT7Ajxfk49eJIAvdbVkdFCe2J0gMefhQ0bIZxhx3fzMIysQNiN8PgOUKxOMur10LduigREDRMZyP4oGWrP1GFY4t6groASsZ421os48wAdnrbovNhLt7ScNULkwZ5AIZJTrbaKYTLjA1oJ3sIuN/aYocm/9uoQHEIlacF1s/TM1fLcPTL38O9fOsjMEIwoPKfvt7opuI9G2Hf/PR4aCLDQ7wNmIdEuXJ/QNL72k5q4NejAldPfe3UVVqzkys8YZ/jYOGOp6c+YzRCrCuq0M11y7TiN6qk7YXRMn/gukxrEimbMQjr3jwRM6dKVZ4RUfWQr8noPXLJq6yh5R3EH1IVOHESst/LItbG2D2vRsZRkAObzvQAAD3mb3/G4NzopI0FAiHfbpq0X72adg6SRj+8OHMShtFxxLZlf/nLgRLbClwl5WmaYSs+yEjkq48tY7Z2bE0N91mJwt+ua0NlRJIDh0HikF4UvSVorFj2YVu9YeS5tfvlVjPSoNu/Zu6dEUfBOT555hahBdN3Sa5Xuj2Rvau1lQNIaC944y0RWj9UiNDskAK1WoL+EfXcC6IbBXFRyVfX/WKXxPAwUyIAGW8ggZ08hcijKTt1YKnUO6QPvcrmDVAb0FCLIXn5id4fD/Jx4tw/gbXs7WF9b2RgXtPhLBG9vF5FEkdHAKrQHZAJC/HWvk7nvzzDzIXZlfFTJoC3JpGgLPBY7SQTjGlUvG577yNutZ1hTfs9/1nkSXK9zzKLRZ3VODeKUovJe0WCq1zVMYxCJMenmNzPIU2S8TA4E7wWmbNkxq9rI2dd6v0VpcAPVMxnDsvWTWFayyqvKZO7Z08a62i/oH2/jxf8rpmfO64in3FLiL1GX8IGtVE9M23yGsIqJbxDTy+LtaMWDaPqkymb5VrQdzOvqldeU0SUi6IirG8UZ3jcpRbwHa1C0Dww9G/SFX3gPvTJQE+kyz+g1BeMILKKO+olcHzctOWgzxYHnOD7dpCRtuZEXACjgqesZMasoPgnuDC4nUviAAxDc5pngjoAITIkvhKwg5d608pdrZcA+qn5TMT6Uo/QzBaOxBCLTJX3Mgk85rMfsnWx86oLxf7p2PX5ONqieTa/qM3tPw4ZXvlAp83NSD8F7+ZgctK1TpoYwtiU2h02HCGioH5tkVCqNVTMH5p00sRy2JU1qyDBP2CII/Dg4WDsIl+zgeX7589srx6YORRQMBfKbodbB743Tl4WLKOEnwWUVBsm94SOlCracU72MSyj068wdpYjyz1FwC2bjQnxnB6Mp/pZ+yyZXtguEaYB+kqhjQ6UUmwSFazOb+rhYjLaoiM+aN9/8KKn0zaCTFpN9eKwWy7/u4EHzO46TdFSNjMfn2iPSJwDPCFHc0I1+vjdAZw5ZjqR/uzi9Zn20oAa5JnLEk/EA3VRWE7J/XrupfFJPtCUuqHPpnlL7ISJtRpSVcB8qsZCm2QEkWoROtCKKxUh3yEcMbWYJwk6DlEBG0bZP6eg06FL3v6RPb7odGuwm7FN8fG4woqtB8e7M5klPpo97GoObNwt+ludTAmxyC5hmcFx+dIvEZKI6igFKHqLH01iY1o7903VzG9QGetyVx5RNmBYUU+zIuSva/yIcECUi4pRmE3VkF2avqulQEUY4yZ/wmNboBzPmAPey3+dSYtBZUjeWWT0pPwCz4Vozxp9xeClIU60qvEFMQCaPvPaA70WlOP9f/ey39macvpGCVa+zfa8gO44wbxpJUlC8GN/pRMTQtzY8Z8/hiNrU+Zq64ZfFGIkdj7m7abcK1EBtws1X4J/hnqvasPvvDSDYWN+QcQVGMqXalkDtTad5rYY0TIR1Eqox3czwPMjKPvF5sFv17Thujr1IZ1Ytl4VX1J0vjXKmLY4lmXipRAro0qVGEcXxEVMMEl54jQMd4J7RjgomU0j1ptjyxY+cLiSyXPfiEcIS2lWDK3ISAy6UZ3Hb5vnPncA94411jcy75ay6B6DSTzK6UTCZR9uDANtPBrvIDgjsfarMiwoax2OlLxaSoYn4iRgkpEGqEkwox5tyI8aKkLlfZ12lO11TxsqRMY89j5JaO55XfPJPDL1LGSnC88Re9Ai+Nu5bZjtwRrvFITUFHPR4ZmxGslQMecgbZO7nHk32qHxYkdvWpup07ojcMCaVrpFAyFZJJbNvBpZfdf39Hdo2kPtT7v0/f8R/B5Nz4f1t9/3zNM/7n6SUHfcWk5dfQFJvcJMgPolGCpOFb/WC0FGWU2asuQyT+rm88ZKZ78Cei/CAh939CH0JYbpZIPtxc2ufXqjS3pHH9lnWK4iJ7OjR/EESpCo2R3MYKyE7rHfhTvWho4cL1QdN4jFTyR6syMwFm124TVDDRXMNveI1Dp/ntwdz8k8kxw7iFSx6+Yx6O+1LzMVrN0BBzziZi9kneZSzgollBnVwBh6oSOPHXrglrOj+QmR/AESrhDpKrWT+8/AiMDxS/5wwRNuGQPLlJ9ovomhJWn8sMLVItQ8N/7IXvtD8kdOoHaw+vBSbFImQsv/OCAIui99E+YSIOMlMvBXkAt+NAZK8wB9Jf8CPtB+TOUOR+z71d/AFXpPBT6+A5FLjxMjLIEoJzrQfquvxEIi+WoUzGR1IzQFNvbYOnxb2PyQ0kGdyXKzW2axQL8lNAXPk6NEjqrRD1oZtKLlFoofrXw0dCNWASHzy+7PSzOUJ3XtaPZsxLDjr+o41fKuKWNmjiZtfkOzItvlV2MDGSheGF0ma04qE3TUEfqJMrXFm7DpK+27DSvCUVf7rbNoljPhha5W7KBqVq0ShUSTbRmuqPtQreVWH4JET5yMhuqMoSd4r/N8sDmeQiQQvi1tcZv7Moc7dT5X5AtCD6kNEGZOzVcNYlpX4AbTsLgSYYliiPyVoniuYYySxsBy5cgb3pD+EK0Gpb0wJg031dPgaL8JZt6sIvzNPEHfVPOjXmaXj4bd4voXzpZ5GApMhILgMbCEWZ2zwgdeQgjNHLbPIt+KqxRwWPLTN6HwZ0Ouijj4UF+Sg0Au8XuIKW0WxlexdrFrDcZJ8Shauat3X0XmHygqgL1nAu2hrJFb4wZXkcS+i36KMyU1yFvYv23bQUJi/3yQpqr/naUOoiEWOxckyq/gq43dFou1DVDaYMZK9tho7+IXXokBCs5GRfOcBK7g3A+jXQ39K4YA8PBRW4m5+yR0ZAxWJncjRVbITvIAPHYRt1EJ3YLiUbqIvoKHtzHKtUy1ddRUQ0AUO41vonZDUOW+mrszw+SW/6Q/IUgNpcXFjkM7F4CSSQ2ExZg85otsMs7kqsQD4OxYeBNDcSpifjMoLb7GEbGWTwasVObmB/bfPcUlq0wYhXCYEDWRW02TP5bBrYsKTGWjnWDDJ1F7zWai0zW/2XsCuvBQjPFcTYaQX3tSXRSm8hsAoDdjArK/OFp6vcWYOE7lizP0Yc+8p16i7/NiXIiiQTp7c7Xus925VEtlKAjUdFhyaiLT7VxDagprMFwix4wZ05u0qj7cDWFd0W9OYHIu3JbJKMXRJ1aYNovugg+QqRN7fNHSi26VSgBpn+JfMuPo3aeqPWik/wI5Rz3BWarPQX4i5+dM0npwVOsX+KsOhC7vDg+OJsz4Q5zlnIeflUWL6QYMbf9WDfLmosLF4Qev3mJiOuHjoor/dMeBpA9iKDkMjYBNbRo414HCxjsHrB4EXNbHzNMDHCLuNBG6Sf+J4MZ/ElVsDSLxjIiGsTPhw8BPjxbfQtskj+dyNMKOOcUYIRBEIqbazz3lmjlRQhplxq673VklMMY6597vu+d89ec/zq7Mi4gQvh87ehYbpOuZEXj5g/Q7S7BFDAAB9DzG35SC853xtWVcnZQoH54jeOqYLR9NDuwxsVthTV7V99n/B7HSbAytbEyVTz/5NhJ8gGIjG0E5j3griULUd5Rg7tQR+90hJgNQKQH2btbSfPcaTOfIexc1db1BxUOhM1vWCpLaYuKr3FdNTt/T3PWCpEUWDKEtzYrjpzlL/wri3MITKsFvtF8QVV/NhVo97aKIBgdliNc10dWdXVDpVtsNn+2UIolrgqdWA4EY8so0YvB4a+aLzMXiMAuOHQrXY0tr+CL10JbvZzgjJJuB1cRkdT7DUqTvnswVUp5kkUSFVtIIFYK05+tQxT6992HHNWVhWxUsD1PkceIrlXuUVRogwmfdhyrf6zzaL8+c0L7GXMZOteAhAVQVwdJh+7nrX7x4LaIIfz2F2v7Dg/uDfz2Fa+4gFm2zHAor8UqimJG3VTJtZEoFXhnDYXvxMJFc6ku2bhbCxzij2z5UNuK0jmp1mnvkVNUfR+SEmj1Lr94Lym75PO7Fs0MIr3GdsWXRXSfgLTVY0FLqba97u1In8NAcY7IC6TjWLigwKEIm43NxTdaVTv9mcKkzuzBkKd8x/xt1p/9BbP7Wyb4bpo1K1gnOpbLvKz58pWl3B55RJ/Z5mRDLPtNQg14jdOEs9+h/V5UVpwrAI8kGbX8KPVPDIMfIqKDjJD9UyDOPhjZ3vFAyecwyq4akUE9mDOtJEK1hpDyi6Ae87sWAClXGTiwPwN7PXWwjxaR79ArHRIPeYKTunVW24sPr/3HPz2IwH8oKH4OlWEmt4BLM6W5g4kMcYbLwj2usodD1088stZA7VOsUSpEVl4w7NMb1EUHMRxAxLF0CIV+0L3iZb+ekB1vSDSFjAZ3hfLJf7gFaXrOKn+mhR+rWw/eTXIcAgl4HvFuBg1LOmOAwJH3eoVEjjwheKA4icbrQCmvAtpQ0mXG0agYp5mj4Rb6mdQ+RV4QBPbxMqh9C7o8nP0Wko2ocnCHeRGhN1XVyT2b9ACsL+6ylUy+yC3QEnaKRIJK91YtaoSrcWZMMwxuM0E9J68Z+YyjA0g8p1PfHAAIROy6Sa04VXOuT6A351FOWhKfTGsFJ3RTJGWYPoLk5FVK4OaYR9hkJvezwF9vQN1126r6isMGXWTqFW+3HL3I/jurlIdDWIVvYY+s6yq7lrFSPAGRdnU7PVwY/SvWbZGpXzy3BQ2LmAJlrONUsZs4oGkly0V267xbD5KMY8woNNsmWG1VVgLCra8aQBBcI4DP2BlNwxhiCtHlaz6OWFoCW0vMR3ErrG7JyMjTSCnvRcsEHgmPnwA6iNpJ2DrFb4gLlhKJyZGaWkA97H6FFdwEcLT6DRQQL++fOkVC4cYGW1TG/3iK5dShRSuiBulmihqgjR45Vi03o2RbQbP3sxt90VxQ6vzdlGfkXmmKmjOi080JSHkLntjvsBJnv7gKscOaTOkEaRQqAnCA4HWtB4XnMtOhpRmH2FH8tTXrIjAGNWEmudQLCkcVlGTQ965Kh0H6ixXbgImQP6b42B49sO5C8pc7iRlgyvSYvcnH9FgQ3azLbQG2cUW96SDojTQStxkOJyOuDGTHAnnWkz29aEwN9FT8EJ4yhXOg+jLTrCPKeEoJ9a7lDXOjEr8AgX4BmnMQ668oW0zYPyQiVMPxKRHtpfnEEyaKhdzNVThlxxDQNdrHeZiUFb6NoY2KwvSb7BnRcpJy+/g/zAYx3fYSN5QEaVD2Y1VsNWxB0BSO12MRsRY8JLfAezRMz5lURuLUnG1ToKk6Q30FughqWN6gBNcFxP/nY/iv+iaUQOa+2Nuym46wtI/DvSfzSp1jEi4SdYBE7YhTiVV5cX9gwboVDMVgZp5YBQlHOQvaDNfcCoCJuYhf5kz5kwiIKPjzgpcRJHPbOhJajeoeRL53cuMahhV8Z7IRr6M4hW0JzT7mzaMUzQpm866zwM7Cs07fJYXuWvjAMkbe5O6V4bu71sOG6JQ4oL8zIeXHheFVavzxmlIyBkgc9IZlEDplMPr8xlcyss4pVUdwK1e7CK2kTsSdq7g5SHRAl3pYUB9Ko4fsh4qleOyJv1z3KFSTSvwEcRO/Ew8ozEDYZSqpfoVW9uhJfYrNAXR0Z3VmeoAD+rVWtwP/13sE/3ICX3HhDG3CMc476dEEC0K3umSAD4j+ZQLVdFOsWL2C1TH5+4KiSWH+lMibo+B55hR3Gq40G1n25sGcN0mEcoU2wN9FCVyQLBhYOu9aHVLWjEKx2JIUZi5ySoHUAI9b8hGzaLMxCZDMLhv8MkcpTqEwz9KFDpCpqQhVmsGQN8m24wyB82FAKNmjgfKRsXRmsSESovAwXjBIoMKSG51p6Um8b3i7GISs7kjTq/PZoioCfJzfKdJTN0Q45kQEQuh9H88M3yEs3DbtRTKALraM0YC8laiMiOOe6ADmTcCiREeAWZelBaEXRaSuj2lx0xHaRYqF65O0Lo5OCFU18A8cMDE4MLYm9w2QSr9NgQAIcRxZsNpA7UJR0e71JL+VU+ISWFk5I97lra8uGg7GlQYhGd4Gc6rxsLFRiIeGO4abP4S4ekQ1fiqDCy87GZHd52fn5aaDGuvOmIofrzpVwMvtbreZ/855OaXTRcNiNE0wzGZSxbjg26v8ko8L537v/XCCWP2MFaArJpvnkep0pA+O86MWjRAZPQRfznZiSIaTppy6m3p6HrNSsY7fDtz7Cl4V/DJAjQDoyiL2uwf1UHVd2AIrzBUSlJaTj4k6NL97a/GqhWKU9RUmjnYKpm2r+JYUcrkCuZKvcYvrg8pDoUKQywY9GDWg03DUFSirlUXBS5SWn/KAntnf0IdHGL/7mwXqDG+LZYjbEdQmqUqq4y54TNmWUP7IgcAw5816YBzwiNIJiE9M4lPCzeI/FGBeYy3p6IAmH4AjXXmvQ4Iy0Y82NTobcAggT2Cdqz6Mx4TdGoq9fn2etrWKUNFyatAHydQTVUQ2S5OWVUlugcNvoUrlA8cJJz9MqOa/W3iVno4zDHfE7zhoY5f5lRTVZDhrQbR8LS4eRLz8iPMyBL6o4PiLlp89FjdokQLaSBmKHUwWp0na5fE3v9zny2YcDXG/jfI9sctulHRbdkI5a4GOPJx4oAJQzVZ/yYAado8KNZUdEFs9ZPiBsausotXMNebEgr0dyopuqfScFJ3ODNPHgclACPdccwv0YJGQdsN2lhoV4HVGBxcEUeUX/alr4nqpcc1CCR3vR7g40zteQg/JvWmFlUE4mAiTpHlYGrB7w+U2KdSwQz2QJKBe/5eiixWipmfP15AFWrK8Sh1GBBYLgzki1wTMhGQmagXqJ2+FuqJ8f0XzXCVJFHQdMAw8xco11HhM347alrAu+wmX3pDFABOvkC+WPX0Uhg1Z5MVHKNROxaR84YV3s12UcM+70cJ460SzEaKLyh472vOMD3XnaK7zxZcXlWqenEvcjmgGNR2OKbI1s8U+iwiW+HotHalp3e1MGDy6BMVIvajnAzkFHbeVsgjmJUkrP9OAwnEHYXVBqYx3q7LvXjoVR0mY8h+ZaOnh053pdsGkmbqhyryN01eVHySr+CkDYkSMeZ1xjPNVM+gVLTDKu2VGsMUJqWO4TwPDP0VOg2/8ITbAUaMGb4LjL7L+Pi11lEVMXTYIlAZ/QHmTENjyx3kDkBdfcvvQt6tKk6jYFM4EG5UXDTaF5+1ZjRz6W7MdJPC+wTkbDUim4p5QQH3b9kGk2Bkilyeur8Bc20wm5uJSBO95GfYDI1EZipoRaH7uVveneqz43tlTZGRQ4a7CNmMHgXyOQQOL6WQkgMUTQDT8vh21aSdz7ERiZT1jK9F+v6wgFvuEmGngSvIUR2CJkc5tx1QygfZnAruONobB1idCLB1FCfO7N1ZdRocT8/Wye+EnDiO9pzqIpnLDl4bkaRKW+ekBVwHn46Shw1X0tclt/0ROijuUB4kIInrVJU4buWf4YITJtjOJ6iKdr1u+flgQeFH70GxKjhdgt/MrwfB4K/sXczQ+9zYcrD4dhY6qZhZ010rrxggWA8JaZyg2pYij8ieYEg1aZJkZK9O1Re7sB0iouf60rK0Gd+AYlp7soqCBCDGwfKeUQhCBn0E0o0GS6PdmjLi0TtCYZeqazqwN+yNINIA8Lk3iPDnWUiIPLGNcHmZDxfeK0iAdxm/T7LnN+gemRL61hHIc0NCAZaiYJR+OHnLWSe8sLrK905B5eEJHNlWq4RmEXIaFTmo49f8w61+NwfEUyuJAwVqZCLFcyHBKAcIVj3sNzfEOXzVKIndxHw+AR93owhbCxUZf6Gs8cz6/1VdrFEPrv330+9s6BtMVPJ3zl/Uf9rUi0Z/opexfdL3ykF76e999GPfVv8fJv/Y/+/5hEMon1tqNFyVRevV9y9/uIvsG3dbB8GRRrgaEXfhx+2xeOFt+cEn3RZanNxdEe2+B6MHpNbrRE53PlDifPvFcp4kO78ILR0T4xyW/WGPyBsqGdoA7zJJCu1TKbGfhnqgnRbxbB2B3UZoeQ2bz2sTVnUwokTcTU21RxN1PYPS3Sar7T0eRIsyCNowr9amwoMU/od9s2APtiKNL6ENOlyKADstAEWKA+sdKDhrJ6BOhRJmZ+QJbAaZ3/5Fq0/lumCgEzGEbu3yi0Y4I4EgVAjqxh4HbuQn0GrRhOWyAfsglQJAVL1y/6yezS2k8RE2MstJLh92NOB3GCYgFXznF4d25qiP4ZCyI4RYGesut6FXK6GwPpKK8WHEkhYui0AyEmr5Ml3uBFtPFdnioI8RiCooa7Z1G1WuyIi3nSNglutc+xY8BkeW3JJXPK6jd2VIMpaSxpVtFq+R+ySK9J6WG5Qvt+C+QH1hyYUOVK7857nFmyDBYgZ/o+AnibzNVqyYCJQvyDXDTK+iXdkA71bY7TL3bvuLxLBQ8kbTvTEY9aqkQ3+MiLWbEgjLzOH+lXgco1ERgzd80rDCymlpaRQbOYnKG/ODoFl46lzT0cjM5FYVvv0qLUbD5lyJtMUaC1pFlTkNONx6lliaX9o0i/1vws5bNKn5OuENQEKmLlcP4o2ZmJjD4zzd3Fk32uQ4uRWkPSUqb4LBe3EXHdORNB2BWsws5daRnMfNVX7isPSb1hMQdAJi1/qmDMfRUlCU74pmnzjbXfL8PVG8NsW6IQM2Ne23iCPIpryJjYbVnm5hCvKpMa7HLViNiNc+xTfDIaKm3jctViD8A1M9YPJNk003VVr4Zo2MuGW8vil8SLaGpPXqG7I4DLdtl8a4Rbx1Lt4w5Huqaa1XzZBtj208EJVGcmKYEuaeN27zT9EE6a09JerXdEbpaNgNqYJdhP1NdqiPKsbDRUi86XvvNC7rME5mrSQtrzAZVndtSjCMqd8BmaeGR4l4YFULGRBeXIV9Y4yxLFdyoUNpiy2IhePSWzBofYPP0eIa2q5JP4j9G8at/AqoSsLAUuRXtvgsqX/zYwsE+of6oSDbUOo4RMJw+DOUTJq+hnqwKim9Yy/napyZNTc2rCq6V9jHtJbxGPDwlzWj/Sk3zF/BHOlT/fSjSq7FqlPI1q6J+ru8Aku008SFINXZfOfnZNOvGPMtEmn2gLPt+H4QLA+/SYe4j398auzhKIp2Pok3mPC5q1IN1HgR+mnEfc4NeeHYwd2/kpszR3cBn7ni9NbIqhtSWFW8xbUJuUPVOeeXu3j0IGZmFNiwaNZ6rH4/zQ2ODz6tFxRLsUYZu1bfd1uIvfQDt4YD/efKYv8VF8bHGDgK22w2Wqwpi43vNCOXFJZCGMqWiPbL8mil6tsmOTXAWCyMCw73e2rADZj2IK6rqksM3EXF2cbLb4vjB14wa/yXK5vwU+05MzERJ5nXsXsW21o7M+gO0js2OyKciP5uF2iXyb2DiptwQeHeqygkrNsqVCSlldxBMpwHi1vfc8RKpP/4L3Lmpq6DZcvhDDfxTCE3splacTcOtXdK2g303dIWBVe2wD/Gvja1cClFQ67gw0t1ZUttsUgQ1Veky8oOpS6ksYEc4bqseCbZy766SvL3FodmnahlWJRgVCNjPxhL/fk2wyvlKhITH/VQCipOI0dNcRa5B1M5HmOBjTLeZQJy237e2mobwmDyJNHePhdDmiknvLKaDbShL+Is1XTCJuLQd2wmdJL7+mKvs294whXQD+vtd88KKk0DXP8B1Xu9J+xo69VOuFgexgTrcvI6SyltuLix9OPuE6/iRJYoBMEXxU4shQMf4Fjqwf1PtnJ/wWSZd29rhZjRmTGgiGTAUQqRz+nCdjeMfYhsBD5Lv60KILWEvNEHfmsDs2L0A252351eUoYxAysVaCJVLdH9QFWAmqJDCODUcdoo12+gd6bW2boY0pBVHWL6LQDK5bYWh1V8vFvi0cRpfwv7cJiMX3AZNJuTddHehTIdU0YQ/sQ1dLoF2xQPcCuHKiuCWOY30DHe1OwcClLAhqAKyqlnIbH/8u9ScJpcS4kgp6HKDUdiOgRaRGSiUCRBjzI5gSksMZKqy7Sd51aeg0tgJ+x0TH9YH2Mgsap9N7ENZdEB0bey2DMTrBA1hn56SErNHf3tKtqyL9b6yXEP97/rc+jgD2N1LNUH6RM9AzP3kSipr06RkKOolR7HO768jjWiH1X92jA7dkg7gcNcjqsZCgfqWw0tPXdLg20cF6vnQypg7gLtkazrHAodyYfENPQZsdfnjMZiNu4nJO97D1/sQE+3vNFzrSDOKw+keLECYf7RJwVHeP/j79833oZ0egonYB2FlFE5qj02B/LVOMJQlsB8uNg3Leg4qtZwntsOSNidR0abbZmAK4sCzvt8Yiuz2yrNCJoH5O8XvX/vLeR/BBYTWj0sOPYM/jyxRd5+/JziKAABaPcw/34UA3aj/gLZxZgRCWN6m4m3demanNgsx0P237/Q+Ew5VYnJPkyCY0cIVHoFn2Ay/e7U4P19APbPFXEHX94N6KhEMPG7iwB3+I+O1jd5n6VSgHegxgaSawO6iQCYFgDsPSMsNOcUj4q3sF6KzGaH/0u5PQoAj/8zq6Uc9MoNrGqhYeb2jQo0WlGlXjxtanZLS24/OIN5Gx/2g684BPDQpwlqnkFcxpmP/osnOXrFuu4PqifouQH0eF5qCkvITQbJw/Zvy5mAHWC9oU+cTiYhJmSfKsCyt1cGVxisKu+NymEQIAyaCgud/V09qT3nk/9s/SWsYtha7yNpzBIMM40rCSGaJ9u6lEkl00vXBiEt7p9P5IBCiavynEOv7FgLqPdeqxRiCwuFVMolSIUBcoyfUC2e2FJSAUgYdVGFf0b0Kn2EZlK97yyxrT2MVgvtRikfdaAW8RwEEfN+B7/eK8bBdp7URpbqn1xcrC6d2UjdsKbzCjBFqkKkoZt7Mrhg6YagE7spkqj0jOrWM+UGQ0MUlG2evP1uE1p2xSv4dMK0dna6ENcNUF+xkaJ7B764NdxLCpuvhblltVRAf7vK5qPttJ/9RYFUUSGcLdibnz6mf7WkPO3MkUUhR2mAOuGv8IWw5XG1ZvoVMnjSAZe6T7WYA99GENxoHkMiKxHlCuK5Gd0INrISImHQrQmv6F4mqU/TTQ8nHMDzCRivKySQ8dqkpQgnUMnwIkaAuc6/FGq1hw3b2Sba398BhUwUZSAIO8XZvnuLdY2n6hOXws+gq9BHUKcKFA6kz6FDnpxLPICa3qGhnc97bo1FT/XJk48LrkHJ2CAtBv0RtN97N21plfpXHvZ8gMJb7Zc4cfI6MbPwsW7AilCSXMFIEUEmir8XLEklA0ztYbGpTTGqttp5hpFTTIqUyaAIqvMT9A/x+Ji5ejA4Bhxb/cl1pUdOD6epd3yilIdO6j297xInoiBPuEDW2/UfslDyhGkQs7Wy253bVnlT+SWg89zYIK/9KXFl5fe+jow2rd5FXv8zDPrmfMXiUPt9QBO/iK4QGbX5j/7Rx1c1vzsY8ONbP3lVIaPrhL4+1QrECTN3nyKavGG0gBBtHvTKhGoBHgMXHStFowN+HKrPriYu+OZ05Frn8okQrPaaxoKP1ULCS/cmKFN3gcH7HQlVjraCeQmtjg1pSQxeuqXiSKgLpxc/1OiZsU4+n4lz4hpahGyWBURLi4642n1gn9qz9bIsaCeEPJ0uJmenMWp2tJmIwLQ6VSgDYErOeBCfSj9P4G/vI7oIF+l/n5fp956QgxGvur77ynawAu3G9MdFbJbu49NZnWnnFcQHjxRuhUYvg1U/e84N4JTecciDAKb/KYIFXzloyuE1eYXf54MmhjTq7B/yBToDzzpx3tJCTo3HCmVPYfmtBRe3mPYEE/6RlTIxbf4fSOcaKFGk4gbaUWe44hVk9SZzhW80yfW5QWBHxmtUzvMhfVQli4gZTktIOZd9mjJ5hsbmzttaHQB29Am3dZkmx3g/qvYocyhZ2PXAWsNQiIaf+Q8W/MWPIK7/TjvCx5q2XRp4lVWydMc2wIQkhadDB0xsnw/kSEyGjLKjI4coVIwtubTF3E7MJ6LS6UOsJKj82XVAVPJJcepfewbzE91ivXZvOvYfsmMevwtPpfMzGmC7WJlyW2j0jh7AF1JLmwEJSKYwIvu6DHc3YnyLH9ZdIBnQ+nOVDRiP+REpqv++typYHIvoJyICGA40d8bR7HR2k7do6UQTHF4oriYeIQbxKe4Th6+/l1BjUtS9hqORh3MbgvYrStXTfSwaBOmAVQZzpYNqsAmQyjY56MUqty3c/xH6GuhNvNaG9vGbG6cPtBM8UA3e8r51D0AR9kozKuGGSMgLz3nAHxDNnc7GTwpLj7/6HeWp1iksDeTjwCLpxejuMtpMnGJgsiku1sOACwQ9ukzESiDRN77YNESxR5LphOlcASXA5uIts1LnBIcn1J7BLWs49DMALSnuz95gdOrTZr0u1SeYHinno/pE58xYoXbVO/S+FEMMs5qyWkMnp8Q3ClyTlZP52Y9nq7b8fITPuVXUk9ohG5EFHw4gAEcjFxfKb3xuAsEjx2z1wxNbSZMcgS9GKyW3R6KwJONgtA64LTyxWm8Bvudp0M1FdJPEGopM4Fvg7G/hsptkhCfHFegv4ENwxPeXmYhxwZy7js+BeM27t9ODBMynVCLJ7RWcBMteZJtvjOYHb5lOnCLYWNEMKC59BA7covu1cANa2PXL05iGdufOzkgFqqHBOrgQVUmLEc+Mkz4Rq8O6WkNr7atNkH4M8d+SD1t/tSzt3oFql+neVs+AwEI5JaBJaxARtY2Z4mKoUqxds4UpZ0sv3zIbNoo0J4fihldQTX3XNcuNcZmcrB5LTWMdzeRuAtBk3cZHYQF6gTi3PNuDJ0nmR+4LPLoHvxQIxRgJ9iNNXqf2SYJhcvCtJiVWo85TsyFOuq7EyBPJrAdhEgE0cTq16FQXhYPJFqSfiVn0IQnPOy0LbU4BeG94QjdYNB0CiQ3QaxQqD2ebSMiNjaVaw8WaM4Z5WnzcVDsr4eGweSLa2DE3BWViaxhZFIcSTjgxNCAfelg+hznVOYoe5VqTYs1g7WtfTm3e4/WduC6p+qqAM8H4ZyrJCGpewThTDPe6H7CzX/zQ8Tm+r65HeZn+MsmxUciEWPlAVaK/VBaQBWfoG/aRL/jSZIQfep/89GjasWmbaWzeEZ2R1FOjvyJT37O9B8046SRSKVEnXWlBqbkb5XCS3qFeuE9xb9+frEknxWB5h1D/hruz2iVDEAS7+qkEz5Ot5agHJc7WCdY94Ws61sURcX5nG8UELGBAHZ3i+3VulAyT0nKNNz4K2LBHBWJcTBX1wzf+//u/j/9+//v87+9/l9Lbh/L/uyNYiTsWV2LwsjaA6MxTuzFMqmxW8Jw/+IppdX8t/Clgi1rI1SN0UC/r6tX/4lUc2VV1OQReSeCsjUpKZchw4XUcjHfw6ryCV3R8s6VXm67vp4n+lcPV9gJwmbKQEsmrJi9c2vkwrm8HFbVYNTaRGq8D91t9n5+U+aD/hNtN3HjC/nC/vUoGFSCkXP+NlRcmLUqLbiUBl4LYf1U/CCvwtd3ryCH8gUmGITAxiH1O5rnGTz7y1LuFjmnFGQ1UWuM7HwfXtWl2fPFKklYwNUpF2IL/TmaRETjQiM5SJacI+3Gv5MBU8lP5Io6gWkawpyzNEVGqOdx4YlO1dCvjbWFZWbCmeiFKPSlMKtKcMFLs/KQxtgAHi7NZNCQ32bBAW2mbHflVZ8wXKi1JKVHkW20bnYnl3dKWJeWJOiX3oKPBD6Zbi0ZvSIuWktUHB8qDR8DMMh1ZfkBL9FS9x5r0hBGLJ8pUCJv3NYH+Ae8p40mZWd5m5fhobFjQeQvqTT4VKWIYfRL0tfaXKiVl75hHReuTJEcqVlug+eOIIc4bdIydtn2K0iNZPsYWQvQio2qbO3OqAlPHDDOB7DfjGEfVF51FqqNacd6QmgFKJpMfLp5DHTv4wXlONKVXF9zTJpDV4m1sYZqJPhotcsliZM8yksKkCkzpiXt+EcRQvSQqmBS9WdWkxMTJXPSw94jqI3varCjQxTazjlMH8jTS8ilaW8014/vwA/LNa+YiFoyyx3s/KswP3O8QW1jtq45yTM/DX9a8M4voTVaO2ebvw1EooDw/yg6Y1faY+WwrdVs5Yt0hQ5EwRfYXSFxray1YvSM+kYmlpLG2/9mm1MfmbKHXr44Ih8nVKb1M537ZANUkCtdsPZ80JVKVKabVHCadaLXg+IV8i5GSwpZti0h6diTaKs9sdpUKEpd7jDUpYmHtiX33SKiO3tuydkaxA7pEc9XIQEOfWJlszj5YpL5bKeQyT7aZSBOamvSHl8xsWvgo26IP/bqk+0EJUz+gkkcvlUlyPp2kdKFtt7y5aCdks9ZJJcFp5ZWeaWKgtnXMN3ORwGLBE0PtkEIek5FY2aVssUZHtsWIvnljMVJtuVIjpZup/5VL1yPOHWWHkOMc6YySWMckczD5jUj2mlLVquFaMU8leGVaqeXis+aRRL8zm4WuBk6cyWfGMxgtr8useQEx7k/PvRoZyd9nde1GUCV84gMX8Ogu/BWezYPSR27llzQnA97oo0pYyxobYUJfsj+ysTm9zJ+S4pk0TGo9VTG0KjqYhTmALfoDZVKla2b5yhv241PxFaLJs3i05K0AAIdcGxCJZmT3ZdT7CliR7q+kur7WdQjygYtOWRL9B8E4s4LI8KpAj7bE0dg7DLOaX+MGeAi0hMMSSWZEz+RudXbZCsGYS0QqiXjH9XQbd8sCB+nIVTq7/T/FDS+zWY9q7Z2fdq1tdLb6v3hKKVDAw5gjj6o9r1wHFROdHc18MJp4SJ2Ucvu+iQ9EgkekW8VCM+psM6y+/2SBy8tNN4a3L1MzP+OLsyvESo5gS7IQOnIqMmviJBVc6zbVG1n8eXiA3j46kmvvtJlewwNDrxk4SbJOtP/TV/lIVK9ueShNbbMHfwnLTLLhbZuO79ec5XvfgRwLFK+w1r5ZWW15rVFZrE+wKqNRv5KqsLNfpGgnoUU6Y71NxEmN7MyqwqAQqoIULOw/LbuUB2+uE75gJt+kq1qY4LoxV+qR/zalupea3D5+WMeaRIn0sAI6DDWDh158fqUb4YhAxhREbUN0qyyJYkBU4V2KARXDT65gW3gRsiv7xSPYEKLwzgriWcWgPr0sbZnv7m1XHNFW6xPdGNZUdxFiUYlmXNjDVWuu7LCkX/nVkrXaJhiYktBISC2xgBXQnNEP+cptWl1eG62a7CPXrnrkTQ5BQASbEqUZWMDiZUisKyHDeLFOaJILUo5f6iDt4ZO8MlqaKLto0AmTHVVbkGuyPa1R/ywZsWRoRDoRdNMMHwYTsklMVnlAd2S0282bgMI8fiJpDh69OSL6K3qbo20KfpNMurnYGQSr/stFqZ7hYsxKlLnKAKhsmB8AIpEQ4bd/NrTLTXefsE6ChRmKWjXKVgpGoPs8GAicgKVw4K0qgDgy1A6hFq1WRat3fHF+FkU+b6H4NWpOU3KXTxrIb2qSHAb+qhm8hiSROi/9ofapjxhyKxxntPpge6KL5Z4+WBMYkAcE6+0Hd3Yh2zBsK2MV3iW0Y6cvOCroXlRb2MMJtdWx+3dkFzGh2Pe3DZ9QpSqpaR/rE1ImOrHqYYyccpiLC22amJIjRWVAherTfpQLmo6/K2pna85GrDuQPlH1Tsar8isAJbXLafSwOof4gg9RkAGm/oYpBQQiPUoyDk2BCQ1k+KILq48ErFo4WSRhHLq/y7mgw3+L85PpP6xWr6cgp9sOjYjKagOrxF148uhuaWtjet953fh1IQiEzgC+d2IgBCcUZqgTAICm2bR8oCjDLBsmg+ThyhfD+zBalsKBY1Ce54Y/t9cwfbLu9SFwEgphfopNA3yNxgyDafUM3mYTovZNgPGdd4ZFFOj1vtfFW3u7N+iHEN1HkeesDMXKPyoCDCGVMo4GCCD6PBhQ3dRZIHy0Y/3MaE5zU9mTCrwwnZojtE+qNpMSkJSpmGe0EzLyFelMJqhfFQ7a50uXxZ8pCc2wxtAKWgHoeamR2O7R+bq7IbPYItO0esdRgoTaY38hZLJ5y02oIVwoPokGIzxAMDuanQ1vn2WDQ00Rh6o5QOaCRu99fwDbQcN0XAuqkFpxT/cfz3slGRVokrNU0iqiMAJFEbKScZdmSkTUznC0U+MfwFOGdLgsewRyPKwBZYSmy6U325iUhBQNxbAC3FLKDV9VSOuQpOOukJ/GAmu/tyEbX9DgEp6dv1zoU0IqzpG6gssSjIYRVPGgU1QAQYRgIT8gEV0EXr1sqeh2I6rXjtmoCYyEDCe/PkFEi/Q48FuT29p557iN+LCwk5CK/CZ2WdAdfQZh2Z9QGrzPLSNRj5igUWzl9Vi0rCqH8G1Kp4QMLkuwMCAypdviDXyOIk0AHTM8HBYKh3b0/F+DxoNj4ZdoZfCpQVdnZarqoMaHWnMLNVcyevytGsrXQEoIbubqWYNo7NRHzdc0zvT21fWVirj7g36iy6pxogfvgHp1xH1Turbz8QyyHnXeBJicpYUctbzApwzZ1HT+FPEXMAgUZetgeGMwt4G+DHiDT2Lu+PT21fjJCAfV16a/Wu1PqOkUHSTKYhWW6PhhHUlNtWzFnA7MbY+r64vkwdpfNB2JfWgWXAvkzd42K4lN9x7Wrg4kIKgXCb4mcW595MCPJ/cTfPAMQMFWwnqwde4w8HZYJFpQwcSMhjVz4B8p6ncSCN1X4klxoIH4BN2J6taBMj6lHkAOs8JJAmXq5xsQtrPIPIIp/HG6i21xMGcFgqDXSRF0xQg14d2uy6HgKE13LSvQe52oShF5Jx1R6avyL4thhXQZHfC94oZzuPUBKFYf1VvDaxIrtV6dNGSx7DO0i1p6CzBkuAmEqyWceQY7F9+U0ObYDzoa1iKao/cOD/v6Q9gHrrr1uCeOk8fST9MG23Ul0KmM3r+Wn6Hi6WAcL7gEeaykicvgjzkjSwFsAXIR81Zx4QJ6oosVyJkCcT+4xAldCcihqvTf94HHUPXYp3REIaR4dhpQF6+FK1H0i9i7Pvh8owu3lO4PT1iuqu+DkL2Bj9+kdfGAg2TXw03iNHyobxofLE2ibjsYDPgeEQlRMR7afXbSGQcnPjI2D+sdtmuQ771dbASUsDndU7t58jrrNGRzISvwioAlHs5FA+cBE5Ccznkd8NMV6BR6ksnKLPZnMUawRDU1MZ/ib3xCdkTblHKu4blNiylH5n213yM0zubEie0o4JhzcfAy3H5qh2l17uLooBNLaO+gzonTH2uF8PQu9EyH+pjGsACTMy4cHzsPdymUSXYJOMP3yTkXqvO/lpvt0cX5ekDEu9PUfBeZODkFuAjXCaGdi6ew4qxJ8PmFfwmPpkgQjQlWqomFY6UkjmcnAtJG75EVR+NpzGpP1Ef5qUUbfowrC3zcSLX3BxgWEgEx/v9cP8H8u1Mvt9/rMDYf6sjwU1xSOPBgzFEeJLMRVFtKo5QHsUYT8ZRLCah27599EuqoC9PYjYO6aoAMHB8X1OHwEAYouHfHB3nyb2B+SnZxM/vw/bCtORjLMSy5aZoEpvgdGvlJfNPFUu/p7Z4VVK1hiI0/UTuB3ZPq4ohEbm7Mntgc1evEtknaosgZSwnDC2BdMmibpeg48X8Ixl+/8+xXdbshQXUPPvx8jT3fkELivHSmqbhblfNFShWAyQnJ3WBU6SMYSIpTDmHjdLVAdlADdz9gCplZw6mTiHqDwIsxbm9ErGusiVpg2w8Q3khKV/R9Oj8PFeF43hmW/nSd99nZzhyjCX3QOZkkB6BsH4H866WGyv9E0hVAzPYah2tkRfQZMmP2rinfOeQalge0ovhduBjJs9a1GBwReerceify49ctOh5/65ATYuMsAkVltmvTLBk4oHpdl6i+p8DoNj4Fb2vhdFYer2JSEilEwPd5n5zNoGBXEjreg/wh2NFnNRaIUHSOXa4eJRwygZoX6vnWnqVdCRT1ARxeFrNBJ+tsdooMwqnYhE7zIxnD8pZH+P0Nu1wWxCPTADfNWmqx626IBJJq6NeapcGeOmbtXvl0TeWG0Y7OGGV4+EHTtNBIT5Wd0Bujl7inXgZgfXTM5efD3qDTJ54O9v3Bkv+tdIRlq1kXcVD0BEMirmFxglNPt5pedb1AnxuCYMChUykwsTIWqT23XDpvTiKEru1cTcEMeniB+HQDehxPXNmkotFdwUPnilB/u4Nx5Xc6l8J9jH1EgKZUUt8t8cyoZleDBEt8oibDmJRAoMKJ5Oe9CSWS5ZMEJvacsGVdXDWjp/Ype5x0p9PXB2PAwt2LRD3d+ftNgpuyvxlP8pB84oB1i73vAVpwyrmXW72hfW6Dzn9Jkj4++0VQ4d0KSx1AsDA4OtXXDo63/w+GD+zC7w5SJaxsmnlYRQ4dgdjA7tTl2KNLnpJ+mvkoDxtt1a4oPaX3EVqj96o9sRKBQqU7ZOiupeAIyLMD+Y3YwHx30XWHB5CQiw7q3mj1EDlP2eBsZbz79ayUMbyHQ7s8gu4Lgip1LiGJj7NQj905/+rgUYKAA5qdrlHKIknWmqfuR+PB8RdBkDg/NgnlT89G72h2NvySnj7UyBwD+mi/IWs1xWbxuVwUIVXun5cMqBtFbrccI+DILjsVQg6eeq0itiRfedn89CvyFtpkxaauEvSANuZmB1p8FGPbU94J9medwsZ9HkUYjmI7OH5HuxendLbxTaYrPuIfE2ffXFKhoNBUp33HsFAXmCV/Vxpq5AYgFoRr5Ay93ZLRlgaIPjhZjXZZChT+aE5iWAXMX0oSFQEtwjiuhQQItTQX5IYrKfKB+queTNplR1Hoflo5/I6aPPmACwQCE2jTOYo5Dz1cs7Sod0KTG/3kEDGk3kUaUCON19xSJCab3kNpWZhSWkO8l+SpW70Wn3g0ciOIJO5JXma6dbos6jyisuxXwUUhj2+1uGhcvuliKtWwsUTw4gi1c/diEEpZHoKoxTBeMDmhPhKTx7TXWRakV8imJR355DcIHkR9IREHxohP4TbyR5LtFU24umRPRmEYHbpe1LghyxPx7YgUHjNbbQFRQhh4KeU1EabXx8FS3JAxp2rwRDoeWkJgWRUSKw6gGP5U2PuO9V4ZuiKXGGzFQuRuf+tkSSsbBtRJKhCi3ENuLlXhPbjTKD4djXVnfXFds6Zb+1XiUrRfyayGxJq1+SYBEfbKlgjiSmk0orgTqzSS+DZ5rTqsJbttiNtp+KMqGE2AHGFw6jQqM5vD6vMptmXV9OAjq49Uf/Lx9Opam+Hn5O9p8qoBBAQixzQZ4eNVkO9sPzJAMyR1y4/RCQQ1s0pV5KAU5sKLw3tkcFbI/JqrjCsK4Mw+W8aod4lioYuawUiCyVWBE/qPaFi5bnkgpfu/ae47174rI1fqQoTbW0HrU6FAejq7ByM0V4zkZTg02/YJK2N7hUQRCeZ4BIgSEqgD8XsjzG6LIsSbuHoIdz/LhFzbNn1clci1NHWJ0/6/O8HJMdIpEZbqi1RrrFfoo/rI/7ufm2MPG5lUI0IYJ4MAiHRTSOFJ2oTverFHYXThkYFIoyFx6rMYFgaOKM4xNWdlOnIcKb/suptptgTOTdVIf4YgdaAjJnIAm4qNNHNQqqAzvi53GkyRCEoseUBrHohZsjUbkR8gfKtc/+Oa72lwxJ8Mq6HDfDATbfbJhzeIuFQJSiw1uZprHlzUf90WgqG76zO0eCB1WdPv1IT6sNxxh91GEL2YpgC97ikFHyoaH92ndwduqZ6IYjkg20DX33MWdoZk7QkcKUCgisIYslOaaLyvIIqRKWQj16jE1DlQWJJaPopWTJjXfixEjRJJo8g4++wuQjbq+WVYjsqCuNIQW3YjnxKe2M5ZKEqq+cX7ZVgnkbsU3RWIyXA1rxv4kGersYJjD//auldXGmcEbcfTeF16Y1708FB1HIfmWv6dSFi6oD4E+RIjCsEZ+kY7dKnwReJJw3xCjKvi3kGN42rvyhUlIz0Bp+fNSV5xwFiuBzG296e5s/oHoFtUyUplmPulIPl+e1CQIQVtjlzLzzzbV+D/OVQtYzo5ixtMi5BmHuG4N/uKfJk5UIREp7+12oZlKtPBomXSzAY0KgtbPzzZoHQxujnREUgBU+O/jKKhgxVhRPtbqyHiUaRwRpHv7pgRPyUrnE7fYkVblGmfTY28tFCvlILC04Tz3ivkNWVazA+OsYrxvRM/hiNn8Fc4bQBeUZABGx5S/xFf9Lbbmk298X7iFg2yeimvsQqqJ+hYbt6uq+Zf9jC+Jcwiccd61NKQtFvGWrgJiHB5lwi6fR8KzYS7EaEHf/ka9EC7H8D+WEa3TEACHBkNSj/cXxFeq4RllC+fUFm2xtstYLL2nos1DfzsC9vqDDdRVcPA3Ho95aEQHvExVThXPqym65llkKlfRXbPTRiDepdylHjmV9YTWAEjlD9DdQnCem7Aj/ml58On366392214B5zrmQz/9ySG2mFqEwjq5sFl5tYJPw5hNz8lyZPUTsr5E0F2C9VMPnZckWP7+mbwp/BiN7f4kf7vtGnZF2JGvjK/sDX1RtcFY5oPQnE4lIAYV49U3C9SP0LCY/9i/WIFK9ORjzM9kG/KGrAuwFmgdEpdLaiqQNpCTGZVuAO65afkY1h33hrqyLjZy92JK3/twdj9pafFcwfXONmPQWldPlMe7jlP24Js0v9m8bIJ9TgS2IuRvE9ZVRaCwSJYOtAfL5H/YS4FfzKWKbek+GFulheyKtDNlBtrdmr+KU+ibHTdalzFUmMfxw3f36x+3cQbJLItSilW9cuvZEMjKw987jykZRlsH/UI+HlKfo2tLwemBEeBFtmxF2xmItA/dAIfQ+rXnm88dqvXa+GapOYVt/2waFimXFx3TC2MUiOi5/Ml+3rj/YU6Ihx2hXgiDXFsUeQkRAD6wF3SCPi2flk7XwKAA4zboqynuELD312EJ88lmDEVOMa1W/K/a8tGylZRMrMoILyoMQzzbDJHNZrhH77L9qSC42HVmKiZ5S0016UTp83gOhCwz9XItK9fgXfK3F5d7nZCBUekoLxrutQaPHa16Rjsa0gTrzyjqTnmcIcrxg6X6dkKiucudc0DD5W4pJPf0vuDW8r5/uw24YfMuxFRpD2ovT2mFX79xH6Jf+MVdv2TYqR6/955QgVPe3JCD/WjAYcLA9tpXgFiEjge2J5ljeI/iUzg91KQuHkII4mmHZxC3XQORLAC6G7uFn5LOmlnXkjFdoO976moNTxElS8HdxWoPAkjjocDR136m2l+f5t6xaaNgdodOvTu0rievnhNAB79WNrVs6EsPgkgfahF9gSFzzAd+rJSraw5Mllit7vUP5YxA843lUpu6/5jAR0RvH4rRXkSg3nE+O5GFyfe+L0s5r3k05FyghSFnKo4TTgs07qj4nTLqOYj6qaW9knJTDkF5OFMYbmCP+8H16Ty482OjvERV6OFyw043L9w3hoJi408sR+SGo1WviXUu8d7qS+ehKjpKwxeCthsm2LBFSFeetx0x4AaKPxtp3CxdWqCsLrB1s/j5TAhc1jNZsXWl6tjo/WDoewxzg8T8NnhZ1niUwL/nhfygLanCnRwaFGDyLw+sfZhyZ1UtYTp8TYB6dE7R3VsKKH95CUxJ8u8N+9u2/9HUNKHW3x3w5GQrfOPafk2w5qZq8MaHT0ebeY3wIsp3rN9lrpIsW9c1ws3VNV+JwNz0Lo9+V7zZr6GD56We6gWVIvtmam5GPPkVAbr74r6SwhuL+TRXtW/0pgyX16VNl4/EAD50TnUPuwrW6OcUO2VlWXS0inq872kk7GUlW6o/ozFKq+Sip6LcTtSDfDrPTcCHhx75H8BeRon+KG2wRwzfDgWhALmiWOMO6h3pm1UCZEPEjScyk7tdLx6WrdA2N1QTPENvNnhCQjW6kl057/qv7IwRryHrZBCwVSbLLnFRiHdTwk8mlYixFt1slEcPD7FVht13HyqVeyD55HOXrh2ElAxJyinGeoFzwKA91zfrdLvDxJSjzmImfvTisreI25EDcVfGsmxLVbfU8PGe/7NmWWKjXcdTJ11jAlVIY/Bv/mcxg/Q10vCHwKG1GW/XbJq5nxDhyLqiorn7Wd7VEVL8UgVzpHMjQ+Z8DUgSukiVwWAKkeTlVVeZ7t1DGnCgJVIdBPZAEK5f8CDyDNo7tK4/5DBjdD5MPV86TaEhGsLVFPQSI68KlBYy84FievdU9gWh6XZrugvtCZmi9vfd6db6V7FmoEcRHnG36VZH8N4aZaldq9zZawt1uBFgxYYx+Gs/qW1jwANeFy+LCoymyM6zgG7j8bGzUyLhvrbJkTYAEdICEb4kMKusKT9V3eIwMLsjdUdgijMc+7iKrr+TxrVWG0U+W95SGrxnxGrE4eaJFfgvAjUM4SAy8UaRwE9j6ZQH5qYAWGtXByvDiLSDfOD0yFA3UCMKSyQ30fyy1mIRg4ZcgZHLNHWl+c9SeijOvbOJxoQy7lTN2r3Y8p6ovxvUY74aOYbuVezryqXA6U+fcp6wSV9X5/OZKP18tB56Ua0gMyxJI7XyNT7IrqN8GsB9rL/kP5KMrjXxgqKLDa+V5OCH6a5hmOWemMUsea9vQl9t5Oce76PrTyTv50ExOqngE3PHPfSL//AItPdB7kGnyTRhVUUFNdJJ2z7RtktZwgmQzhBG/G7QsjZmJfCE7k75EmdIKH7xlnmDrNM/XbTT6FzldcH/rcRGxlPrv4qDScqE7JSmQABJWqRT/TUcJSwoQM+1jvDigvrjjH8oeK2in1S+/yO1j8xAws/T5u0VnIvAPqaE1atNuN0cuRliLcH2j0nTL4JpcR7w9Qya0JoaHgsOiALLCCzRkl1UUESz+ze/gIXHGtDwgYrK6pCFKJ1webSDog4zTlPkgXZqxlQDiYMjhDpwTtBW2WxthWbov9dt2X9XFLFmcF+eEc1UaQ74gqZiZsdj63pH1qcv3Vy8JYciogIVKsJ8Yy3J9w/GhjWVSQAmrS0BPOWK+RKV+0lWqXgYMnIFwpcZVD7zPSp547i9HlflB8gVnSTGmmq1ClO081OW/UH11pEQMfkEdDFzjLC1Cdo/BdL3s7cXb8J++Hzz1rhOUVZFIPehRiZ8VYu6+7Er7j5PSZu9g/GBdmNzJmyCD9wiswj9BZw+T3iBrg81re36ihMLjoVLoWc+62a1U/7qVX5CpvTVF7rocSAKwv4cBVqZm7lLDS/qoXs4fMs/VQi6BtVbNA3uSzKpQfjH1o3x4LrvkOn40zhm6hjduDglzJUwA0POabgdXIndp9fzhOo23Pe+Rk9GSLX0d71Poqry8NQDTzNlsa+JTNG9+UrEf+ngxCjGEsDCc0bz+udVRyHQI1jmEO3S+IOQycEq7XwB6z3wfMfa73m8PVRp+iOgtZfeSBl01xn03vMaQJkyj7vnhGCklsCWVRUl4y+5oNUzQ63B2dbjDF3vikd/3RUMifPYnX5Glfuk2FsV/7RqjI9yKTbE8wJY+74p7qXO8+dIYgjtLD/N8TJtRh04N9tXJA4H59IkMmLElgvr0Q5OCeVfdAt+5hkh4pQgfRMHpL74XatLQpPiOyHRs/OdmHtBf8nOZcxVKzdGclIN16lE7kJ+pVMjspOI+5+TqLRO6m0ZpNXJoZRv9MPDRcAfJUtNZHyig/s2wwReakFgPPJwCQmu1I30/tcBbji+Na53i1W1N+BqoY7Zxo+U/M9XyJ4Ok2SSkBtoOrwuhAY3a03Eu6l8wFdIG1cN+e8hopTkiKF093KuH/BcB39rMiGDLn6XVhGKEaaT/vqb/lufuAdpGExevF1+J9itkFhCfymWr9vGb3BTK4j598zRH7+e+MU9maruZqb0pkGxRDRE1CD4Z8LV4vhgPidk5w2Bq816g3nHw1//j3JStz7NR9HIWELO8TMn3QrP/zZp//+Dv9p429/ogv+GATR+n/UdF+ns9xNkXZQJXY4t9jMkJNUFygAtzndXwjss+yWH9HAnLQQfhAskdZS2l01HLWv7L7us5uTH409pqitvfSOQg/c+Zt7k879P3K9+WV68n7+3cZfuRd/dDPP/03rn+d+/nBvWfgDlt8+LzjqJ/vx3CnNOwiXhho778C96iD+1TBvRZYeP+EH81LE0vVwOOrmCLB3iKzI1x+vJEsrPH4uF0UB4TJ4X3uDfOCo3PYpYe0MF4bouh0DQ/l43fxUF7Y+dpWuvTSffB0yO2UQUETI/LwCZE3BvnevJ7c9zUlY3H58xzke6DNFDQG8n0WtDN4LAYN4nogKav1ezOfK/z+t6tsCTp+dhx4ymjWuCJk1dEUifDP+HyS4iP/Vg9B2jTo9L4NbiBuDS4nuuHW6H+JDQn2JtqRKGkEQPEYE7uzazXIkcxIAqUq1esasZBETlEZY7y7Jo+RoV/IsjY9eIMkUvr42Hc0xqtsavZvhz1OLwSxMOTuqzlhb0WbdOwBH9EYiyBjatz40bUxTHbiWxqJ0uma19qhPruvcWJlbiSSH48OLDDpaHPszvyct41ZfTu10+vjox6kOqK6v0K/gEPphEvMl/vwSv+A4Hhm36JSP9IXTyCZDm4kKsqD5ay8b1Sad/vaiyO5N/sDfEV6Z4q95E+yfjxpqBoBETW2C7xl4pIO2bDODDFurUPwE7EWC2Uplq+AHmBHvir2PSgkR12/Ry65O0aZtQPeXi9mTlF/Wj5GQ+vFkYyhXsLTjrBSP9hwk4GPqDP5rBn5/l8b0mLRAvRSzXHc293bs3s8EsdE3m2exxidWVB4joHR+S+dz5/W+v00K3TqN14CDBth8eWcsTbiwXPsygHdGid0PEdy6HHm2v/IUuV5RVapYmzGsX90mpnIdNGcOOq64Dbc5GUbYpD9M7S+6cLY//QmjxFLP5cuTFRm3vA5rkFZroFnO3bjHF35uU3s8mvL7Tp9nyTc4mymTJ5sLIp7umSnGkO23faehtz3mmTS7fbVx5rP7x3HXIjRNeq/A3xCs9JNB08c9S9BF2O3bOur0ItslFxXgRPdaapBIi4dRpKGxVz7ir69t/bc9qTxjvtOyGOfiLGDhR4fYywHv1WdOplxIV87TpLBy3Wc0QP0P9s4G7FBNOdITS/tep3o3h1TEa5XDDii7fWtqRzUEReP2fbxz7bHWWJdbIOxOUJZtItNZpTFRfj6vm9sYjRxQVO+WTdiOhdPeTJ+8YirPvoeL88l5iLYOHd3b/Imkq+1ZN1El3UikhftuteEYxf1Wujof8Pr4ICTu5ezZyZ4tHQMxlzUHLYO2VMOoNMGL/20S5i2o2obfk+8qqdR7xzbRDbgU0lnuIgz4LelQ5XS7xbLuSQtNS95v3ZUOdaUx/Qd8qxCt6xf2E62yb/HukLO6RyorV8KgYl5YNc75y+KvefrxY+lc/64y9kvWP0a0bDz/rojq+RWjO06WeruWqNFU7r3HPIcLWRql8ICZsz2Ls/qOm/CLn6++X+Qf7mGspYCrZod/lpl6Rw4xN/yuq8gqV4B6aHk1hVE1SfILxWu5gvXqbfARYQpspcxKp1F/c8XOPzkZvmoSw+vEqBLdrq1fr3wAPv5NnM9i8F+jdAuxkP5Z71c6uhK3enlnGymr7UsWZKC12qgUiG8XXGQ9mxnqz4GSIlybF9eXmbqj2sHX+a1jf0gRoONHRdRSrIq03Ty89eQ1GbV/Bk+du4+V15zls+vvERvZ4E7ZbnxWTVjDjb4o/k8jlw44pTIrUGxxuJvBeO+heuhOjpFsO6lVJ/aXnJDa/bM0Ql1cLbXE/Pbv3EZ3vj3iVrB5irjupZTzlnv677NrI9UNYNqbPgp/HZXS+lJmk87wec+7YOxTDo2aw2l3NfDr34VNlvqWJBknuK7oSlZ6/T10zuOoPZOeoIk81N+sL843WJ2Q4Z0fZ3scsqC/JV2fuhWi1jGURSKZV637lf53Xnnx16/vKEXY89aVJ0fv91jGdfG+G4+sniwHes4hS+udOr4RfhFhG/F5gUG35QaU+McuLmclb5ZWmR+sG5V6nf+PxYzlrnFGxpZaK8eqqVo0NfmAWoGfXDiT/FnUbWvzGDOTr8aktOZWg4BYvz5YH12ZbfCcGtNk+dDAZNGWvHov+PIOnY9Prjg8h/wLRrT69suaMVZ5bNuK00lSVpnqSX1NON/81FoP92rYndionwgOiA8WMf4vc8l15KqEEG4yAm2+WAN5Brfu1sq9suWYqgoajgOYt/JCk1gC8wPkK+XKCtRX6TAtgvrnuBgNRmn6I8lVDipOVB9kX6Oxkp4ZKyd1M6Gj8/v2U7k+YQBL95Kb9PQENucJb0JlW3b5tObN7m/Z1j1ev388d7o15zgXsI9CikAGAViR6lkJv7nb4Ak40M2G8TJ447kN+pvfHiOFjSUSP6PM+QfbAywKJCBaxSVxpizHseZUyUBhq59vFwrkyGoRiHbo0apweEZeSLuNiQ+HAekOnarFg00dZNXaPeoHPTRR0FmEyqYExOVaaaO8c0uFUh7U4e/UxdBmthlBDgg257Q33j1hA7HTxSeTTSuVnPZbgW1nodwmG16aKBDKxEetv7D9OjO0JhrbJTnoe+kcGoDJazFSO8/fUN9Jy/g4XK5PUkw2dgPDGpJqBfhe7GA+cjzfE/EGsMM+FV9nj9IAhrSfT/J3QE5TEIYyk5UjsI6ZZcCPr6A8FZUF4g9nnpVmjX90MLSQysIPD0nFzqwCcSJmIb5mYv2Cmk+C1MDFkZQyCBq4c/Yai9LJ6xYkGS/x2s5/frIW2vmG2Wrv0APpCdgCA9snFvfpe8uc0OwdRs4G9973PGEBnQB5qKrCQ6m6X/H7NInZ7y/1674/ZXOVp7OeuCRk8JFS516VHrnH1HkIUIlTIljjHaQtEtkJtosYul77cVwjk3gW1Ajaa6zWeyHGLlpk3VHE2VFzT2yI/EvlGUSz2H9zYE1s4nsKMtMqNyKNtL/59CpFJki5Fou6VXGm8vWATEPwrUVOLvoA8jLuwOzVBCgHB2Cr5V6OwEWtJEKokJkfc87h+sNHTvMb0KVTp5284QTPupoWvQVUwUeogZR3kBMESYo0mfukewRVPKh5+rzLQb7HKjFFIgWhj1w3yN/qCNoPI8XFiUgBNT1hCHBsAz8L7Oyt8wQWUFj92ONn/APyJFg8hzueqoJdNj57ROrFbffuS/XxrSXLTRgj5uxZjpgQYceeMc2wJrahReSKpm3QjHfqExTLAB2ipVumE8pqcZv8LYXQiPHHsgb5BMW8zM5pvQit+mQx8XGaVDcfVbLyMTlY8xcfmm/RSAT/H09UQol5gIz7rESDmnrQ4bURIB4iRXMDQwxgex1GgtDxKp2HayIkR+E/aDmCttNm2C6lytWdfOVzD6X2SpDWjQDlMRvAp1symWv4my1bPCD+E1EmGnMGWhNwmycJnDV2WrQNxO45ukEb08AAffizYKVULp15I4vbNK5DzWwCSUADfmKhfGSUqii1L2UsE8rB7mLuHuUJZOx4+WiizHBJ/hwboaBzhpNOVvgFTf5cJsHef7L1HCI9dOUUbb+YxUJWn6dYOLz+THi91kzY5dtO5c+grX7v0jEbsuoOGnoIreDIg/sFMyG+TyCLIcAWd1IZ1UNFxE8Uie13ucm40U2fcxC0u3WLvLOxwu+F7MWUsHsdtFQZ7W+nlfCASiAKyh8rnP3EyDByvtJb6Kax6/HkLzT9SyEyTMVM1zPtM0MJY14DmsWh4MgD15Ea9Hd00AdkTZ0EiG5NAGuIBzQJJ0JR0na+OB7lQA6UKxMfihIQ7GCCnVz694QvykWXTxpS2soDu+smru1UdIxSvAszBFD1c8c6ZOobA8bJiJIvuycgIXBQIXWwhyTgZDQxJTRXgEwRNAawGSXO0a1DKjdihLVNp/taE/xYhsgwe+VpKEEB4LlraQyE84gEihxCnbfoyOuJIEXy2FIYw+JjRusybKlU2g/vhTSGTydvCvXhYBdtAXtS2v7LkHtmXh/8fly1do8FI/D0f8UbzVb5h+KRhMGSAmR2mhi0YG/uj7wgxcfzCrMvdjitUIpXDX8ae2JcF/36qUWIMwN6JsjaRGNj+jEteGDcFyTUb8X/NHSucKMJp7pduxtD6KuxVlyxxwaeiC1FbGBESO84lbyrAugYxdl+2N8/6AgWpo/IeoAOcsG35IA/b3AuSyoa55L7llBLlaWlEWvuCFd8f8NfcTUgzJv6CbB+6ohWwodlk9nGWFpBAOaz5uEW5xBvmjnHFeDsb0mXwayj3mdYq5gxxNf3H3/tnCgHwjSrpSgVxLmiTtuszdRUFIsn6LiMPjL808vL1uQhDbM7aA43mISXReqjSskynIRcHCJ9qeFopJfx9tqyUoGbSwJex/0aDE3plBPGtNBYgWbdLom3+Q/bjdizR2/AS/c/dH/d3G7pyl1qDXgtOFtEqidwLqxPYtrNEveasWq3vPUUtqTeu8gpov4bdOQRI2kneFvRNMrShyVeEupK1PoLDPMSfWMIJcs267mGB8X9CehQCF0gIyhpP10mbyM7lwW1e6TGvHBV1sg/UyTghHPGRqMyaebC6pbB1WKNCQtlai1GGvmq9zUKaUzLaXsXEBYtHxmFbEZ2kJhR164LhWW2Tlp1dhsGE7ZgIWRBOx3Zcu2DxgH+G83WTPceKG0TgQKKiiNNOlWgvqNEbnrk6fVD+AqRam2OguZb0YWSTX88N+i/ELSxbaUUpPx4vJUzYg/WonSeA8xUK6u7DPHgpqWpEe6D4cXg5uK9FIYVba47V/nb+wyOtk+zG8RrS4EA0ouwa04iByRLSvoJA2FzaobbZtXnq8GdbfqEp5I2dpfpj59TCVif6+E75p665faiX8gS213RqBxTZqfHP46nF6NSenOneuT+vgbLUbdTH2/t0REFXZJOEB6DHvx6N6g9956CYrY/AYcm9gELJXYkrSi+0F0geKDZgOCIYkLU/+GOW5aGj8mvLFgtFH5+XC8hvAE3CvHRfl4ofM/Qwk4x2A+R+nyc9gNu/9Tem7XW4XRnyRymf52z09cTOdr+PG6+P/Vb4QiXlwauc5WB1z3o+IJjlbxI8MyWtSzT+k4sKVbhF3xa+vDts3NxXa87iiu+xRH9cAprnOL2h6vV54iQRXuOAj1s8nLFK8gZ70ThIQcWdF19/2xaJmT0efrkNDkWbpAQPdo92Z8+Hn/aLjbOzB9AI/k12fPs9HhUNDJ1u6ax2VxD3R6PywN7BrLJ26z6s3QoMp76qzzwetrDABKSGkfW5PwS1GvYNUbK6uRqxfyVGNyFB0E+OugMM8kKwmJmupuRWO8XkXXXQECyRVw9UyIrtCtcc4oNqXqr7AURBmKn6Khz3eBN96LwIJrAGP9mr/59uTOSx631suyT+QujDd4beUFpZ0kJEEnjlP+X/Kr2kCKhnENTg4BsMTOmMqlj2WMFLRUlVG0fzdCBgUta9odrJfpVdFomTi6ak0tFjXTcdqqvWBAzjY6hVrH9sbt3Z9gn+AVDpTcQImefbB4edirjzrsNievve4ZT4EUZWV3TxEsIW+9MT/RJoKfZZYSRGfC1CwPG/9rdMOM8qR/LUYvw5f/emUSoD7YSFuOoqchdUg2UePd1eCtFSKgxLSZ764oy4lvRCIH6bowPxZWwxNFctksLeil47pfevcBipkkBIc4ngZG+kxGZ71a72KQ7VaZ6MZOZkQJZXM6kb/Ac0/XkJx8dvyfJcWbI3zONEaEPIW8GbkYjsZcwy+eMoKrYjDmvEEixHzkCSCRPRzhOfJZuLdcbx19EL23MA8rnjTZZ787FGMnkqnpuzB5/90w1gtUSRaWcb0eta8198VEeZMUSfIhyuc4/nywFQ9uqn7jdqXh+5wwv+RK9XouNPbYdoEelNGo34KyySwigsrfCe0v/PlWPvQvQg8R0KgHO18mTVThhQrlbEQ0Kp/JxPdjHyR7E1QPw/ut0r+HDDG7BwZFm9IqEUZRpv2WpzlMkOemeLcAt5CsrzskLGaVOAxyySzZV/D2EY7ydNZMf8e8VhHcKGHAWNszf1EOq8fNstijMY4JXyATwTdncFFqcNDfDo+mWFvxJJpc4sEZtjXyBdoFcxbUmniCoKq5jydUHNjYJxMqN1KzYV62MugcELVhS3Bnd+TLLOh7dws/zSXWzxEb4Nj4aFun5x4kDWLK5TUF/yCXB/cZYvI9kPgVsG2jShtXkxfgT+xzjJofXqPEnIXIQ1lnIdmVzBOM90EXvJUW6a0nZ/7XjJGl8ToO3H/fdxnxmTNKBZxnkpXLVgLXCZywGT3YyS75w/PAH5I/jMuRspej8xZObU9kREbRA+kqjmKRFaKGWAmFQspC+QLbKPf0RaK3OXvBSWqo46p70ws/eZpu6jCtZUgQy6r4tHMPUdAgWGGUYNbuv/1a6K+MVFsd3T183+T8capSo6m0+Sh57fEeG/95dykGJBQMj09DSW2bY0mUonDy9a8trLnnL5B5LW3Nl8rJZNysO8Zb+80zXxqUGFpud3Qzwb7bf+8mq6x0TAnJU9pDQR9YQmZhlna2xuxJt0aCO/f1SU8gblOrbIyMsxTlVUW69VJPzYU2HlRXcqE2lLLxnObZuz2tT9CivfTAUYfmzJlt/lOPgsR6VN64/xQd4Jlk/RV7UKVv2Gx/AWsmTAuCWKhdwC+4HmKEKYZh2Xis4KsUR1BeObs1c13wqFRnocdmuheaTV30gvVXZcouzHKK5zwrN52jXJEuX6dGx3BCpV/++4f3hyaW/cQJLFKqasjsMuO3B3WlMq2gyYfdK1e7L2pO/tRye2mwzwZPfdUMrl5wdLqdd2Kv/wVtnpyWYhd49L6rsOV+8HXPrWH2Kup89l2tz6bf80iYSd+V4LROSOHeamvexR524q4r43rTmtFzQvArpvWfLYFZrbFspBsXNUqqenjxNNsFXatZvlIhk7teUPfK+YL32F8McTnjv0BZNppb+vshoCrtLXjIWq3EJXpVXIlG6ZNL0dh6qEm2WMwDjD3LfOfkGh1/czYc/0qhiD2ozNnH4882MVVt3JbVFkbwowNCO3KL5IoYW5wlVeGCViOuv1svZx7FbzxKzA4zGqBlRRaRWCobXaVq4yYCWbZf8eiJwt3OY+MFiSJengcFP2t0JMfzOiJ7cECvpx7neg1Rc5x+7myPJOXt2FohVRyXtD+/rDoTOyGYInJelZMjolecVHUhUNqvdZWg2J2t0jPmiLFeRD/8fOT4o+NGILb+TufCo9ceBBm3JLVn+MO2675n7qiEX/6W+188cYg3Zn5NSTjgOKfWFSAANa6raCxSoVU851oJLY11WIoYK0du0ec5E4tCnAPoKh71riTsjVIp3gKvBbEYQiNYrmH22oLQWA2AdwMnID6PX9b58dR2QKo4qag1D1Z+L/FwEKTR7osOZPWECPJIHQqPUsM5i/CH5YupVPfFA5pHUBcsesh8eO5YhyWnaVRPZn/BmdXVumZWPxMP5e28zm2uqHgFoT9CymHYNNrzrrjlXZM06HnzDxYNlI5b/QosxLmmrqDFqmogQdqk0WLkUceoAvQxHgkIyvWU69BPFr24VB6+lx75Rna6dGtrmOxDnvBojvi1/4dHjVeg8owofPe1cOnxU1ioh016s/Vudv9mhV9f35At+Sh28h1bpp8xhr09+vf47Elx3Ms6hyp6QvB3t0vnLbOhwo660cp7K0vvepabK7YJfxEWWfrC2YzJfYOjygPwfwd/1amTqa0hZ5ueebhWYVMubRTwIjj+0Oq0ohU3zfRfuL8gt59XsHdwKtxTQQ4Y2qz6gisxnm2UdlmpEkgOsZz7iEk6QOt8BuPwr+NR01LTqXmJo1C76o1N274twJvl+I069TiLpenK/miRxhyY8jvYV6W1WuSwhH9q7kuwnJMtm7IWcqs7HsnyHSqWXLSpYtZGaR1V3t0gauninFPZGtWskF65rtti48UV9uV9KM8kfDYs0pgB00S+TlzTXV6P8mxq15b9En8sz3jWSszcifZa/NuufPNnNTb031pptt0+sRSH/7UG8pzbsgtt3OG3ut7B9JzDMt2mTZuyRNIV8D54TuTrpNcHtgmMlYJeiY9XS83NYJicjRjtJSf9BZLsQv629QdDsKQhTK5CnXhpk7vMNkHzPhm0ExW/VCGApHfPyBagtZQTQmPHx7g5IXXsrQDPzIVhv2LB6Ih138iSDww1JNHrDvzUxvp73MsQBVhW8EbrReaVUcLB1R3PUXyaYG4HpJUcLVxMgDxcPkVRQpL7VTAGabDzbKcvg12t5P8TSGQkrj/gOrpnbiDHwluA73xbXts/L7u468cRWSWRtgTwlQnA47EKg0OiZDgFxAKQQUcsbGomITgeXUAAyKe03eA7Mp4gnyKQmm0LXJtEk6ddksMJCuxDmmHzmVhO+XaN2A54MIh3niw5CF7PwiXFZrnA8wOdeHLvvhdoqIDG9PDI7UnWWHq526T8y6ixJPhkuVKZnoUruOpUgOOp3iIKBjk+yi1vHo5cItHXb1PIKzGaZlRS0g5d3MV2pD8FQdGYLZ73aae/eEIUePMc4NFz8pIUfLCrrF4jVWH5gQneN3S8vANBmUXrEcKGn6hIUN95y1vpsvLwbGpzV9L0ZKTan6TDXM05236uLJcIEMKVAxKNT0K8WljuwNny3BNQRfzovA85beI9zr1AGNYnYCVkR1aGngWURUrgqR+gRrQhxW81l3CHevjvGEPzPMTxdsIfB9dfGRbZU0cg/1mcubtECX4tvaedmNAvTxCJtc2QaoUalGfENCGK7IS/O8CRpdOVca8EWCRwv2sSWE8CJPW5PCugjCXPd3h6U60cPD+bdhtXZuYB6stcoveE7Sm5MM2yvfUHXFSW7KzLmi7/EeEWL0wqcOH9MOSKjhCHHmw+JGLcYE/7SBZQCRggox0ZZTAxrlzNNXYXL5fNIjkdT4YMqVUz6p8YDt049v4OXGdg3qTrtLBUXOZf7ahPlZAY/O+7Sp0bvGSHdyQ8B1LOsplqMb9Se8VAE7gIdSZvxbRSrfl+Lk5Qaqi5QJceqjitdErcHXg/3MryljPSIAMaaloFm1cVwBJ8DNmkDqoGROSHFetrgjQ5CahuKkdH5pRPigMrgTtlFI8ufJPJSUlGgTjbBSvpRc0zypiUn6U5KZqcRoyrtzhmJ7/caeZkmVRwJQeLOG8LY6vP5ChpKhc8Js0El+n6FXqbx9ItdtLtYP92kKfaTLtCi8StLZdENJa9Ex1nOoz1kQ7qxoiZFKRyLf4O4CHRT0T/0W9F8epNKVoeyxUXhy3sQMMsJjQJEyMOjmOhMFgOmmlscV4eFi1CldU92yjwleirEKPW3bPAuEhRZV7JsKV3Lr5cETAiFuX5Nw5UlF7d2HZ96Bh0sgFIL5KGaKSoVYVlvdKpZJVP5+NZ7xDEkQhmDgsDKciazJCXJ6ZN2B3FY2f6VZyGl/t4aunGIAk/BHaS+i+SpdRfnB/OktOvyjinWNfM9Ksr6WwtCa1hCmeRI6icpFM4o8quCLsikU0tMoZI/9EqXRMpKGaWzofl4nQuVQm17d5fU5qXCQeCDqVaL9XJ9qJ08n3G3EFZS28SHEb3cdRBdtO0YcTzil3QknNKEe/smQ1fTb0XbpyNB5xAeuIlf+5KWlEY0DqJbsnzJlQxJPOVyHiKMx5Xu9FcEv1Fbg6Fhm4t+Jyy5JC1W3YO8dYLsO0PXPbxodBgttTbH3rt9Cp1lJIk2r3O1Zqu94eRbnIz2f50lWolYzuKsj4PMok4abHLO8NAC884hiXx5Fy5pWKO0bWL7uEGXaJCtznhP67SlQ4xjWIfgq6EpZ28QMtuZK7JC0RGbl9nA4XtFLug/NLMoH1pGt9IonAJqcEDLyH6TDROcbsmGPaGIxMo41IUAnQVPMPGByp4mOmh9ZQMkBAcksUK55LsZj7E5z5XuZoyWCKu6nHmDq22xI/9Z8YdxJy4kWpD16jLVrpwGLWfyOD0Wd+cBzFBxVaGv7S5k9qwh/5t/LQEXsRqI3Q9Rm3QIoaZW9GlsDaKOUyykyWuhNOprSEi0s1G4rgoiX1V743EELti+pJu5og6X0g6oTynUqlhH9k6ezyRi05NGZHz0nvp3HOJr7ebrAUFrDjbkFBObEvdQWkkUbL0pEvMU46X58vF9j9F3j6kpyetNUBItrEubW9ZvMPM4qNqLlsSBJqOH3XbNwv/cXDXNxN8iFLzUhteisYY+RlHYOuP29/Cb+L+xv+35Rv7xudnZ6ohK4cMPfCG8KI7dNmjNk/H4e84pOxn/sZHK9psfvj8ncA8qJz7O8xqbxESDivGJOZzF7o5PJLQ7g34qAWoyuA+x3btU98LT6ZyGyceIXjrqob2CAVql4VOTQPUQYvHV/g4zAuCZGvYQBtf0wmd5lilrvuEn1BXLny01B4h4SMDlYsnNpm9d7m9h578ufpef9Z4WplqWQvqo52fyUA7J24eZD5av6SyGIV9kpmHNqyvdfzcpEMw97BvknV2fq+MFHun9BT3Lsf8pbzvisWiIQvYkng+8Vxk1V+dli1u56kY50LRjaPdotvT5BwqtwyF+emo/z9J3yVUVGfKrxQtJMOAQWoQii/4dp9wgybSa5mkucmRLtEQZ/pz0tL/NVcgWAd95nEQ3Tg6tNbuyn3Iepz65L3huMUUBntllWuu4DbtOFSMSbpILV4fy6wlM0SOvi6CpLh81c1LreIvKd61uEWBcDw1lUBUW1I0Z+m/PaRlX+PQ/oxg0Ye6KUiIiTF4ADNk59Ydpt5/rkxmq9tV5Kcp/eQLUVVmBzQNVuytQCP6Ezd0G8eLxWyHpmZWJ3bAzkWTtg4lZlw42SQezEmiUPaJUuR/qklVA/87S4ArFCpALdY3QRdUw3G3XbWUp6aq9z0zUizcPa7351p9JXOZyfdZBFnqt90VzQndXB/mwf8LC9STj5kenVpNuqOQQP3mIRJj7eV21FxG8VAxKrEn3c+XfmZ800EPb9/5lIlijscUbB6da0RQaMook0zug1G0tKi/JBC4rw7/D3m4ARzAkzMcVrDcT2SyFtUdWAsFlsPDFqV3N+EjyXaoEePwroaZCiLqEzb8MW+PNE9TmTC01EzWli51PzZvUqkmyuROU+V6ik+Le/9qT6nwzUzf9tP68tYei0YaDGx6kAd7jn1cKqOCuYbiELH9zYqcc4MnRJjkeGiqaGwLImhyeKs+xKJMBlOJ05ow9gGCKZ1VpnMKoSCTbMS+X+23y042zOb5MtcY/6oBeAo1Vy89OTyhpavFP78jXCcFH0t7Gx24hMEOm2gsEfGabVpQgvFqbQKMsknFRRmuPHcZu0Su/WMFphZvB2r/EGbG72rpGGho3h+Msz0uGzJ7hNK2uqQiE1qmn0zgacKYYZBCqsxV+sjbpoVdSilW/b94n2xNb648VmNIoizqEWhBnsen+d0kbCPmRItfWqSBeOd9Wne3c6bcd6uvXOJ6WdiSsuXq0ndhqrQ4QoWUjCjYtZ0EAhnSOP1m44xkf0O7jXghrzSJWxP4a/t72jU29Vu2rvu4n7HfHkkmQOMGSS+NPeLGO5I73mC2B7+lMiBQQZRM9/9liLIfowupUFAbPBbR+lxDM6M8Ptgh1paJq5Rvs7yEuLQv/7d1oU2woFSb3FMPWQOKMuCuJ7pDDjpIclus5TeEoMBy2YdVB4fxmesaCeMNsEgTHKS5WDSGyNUOoEpcC2OFWtIRf0w27ck34/DjxRTVIcc9+kqZE6iMSiVDsiKdP/Xz5XfEhm/sBhO50p1rvJDlkyyxuJ9SPgs7YeUJBjXdeAkE+P9OQJm6SZnn1svcduI78dYmbkE2mtziPrcjVisXG78spLvbZaSFx/Rks9zP4LKn0Cdz/3JsetkT06A8f/yCgMO6Mb1Hme0JJ7b2wZz1qleqTuKBGokhPVUZ0dVu+tnQYNEY1fmkZSz6+EGZ5EzL7657mreZGR3jUfaEk458PDniBzsSmBKhDRzfXameryJv9/D5m6HIqZ0R+ouCE54Dzp4IJuuD1e4Dc5i+PpSORJfG23uVgqixAMDvchMR0nZdH5brclYwRoJRWv/rlxGRI5ffD5NPGmIDt7vDE1434pYdVZIFh89Bs94HGGJbTwrN8T6lh1HZFTOB4lWzWj6EVqxSMvC0/ljWBQ3F2kc/mO2b6tWonT2JEqEwFts8rz2h+oWNds9ceR2cb7zZvJTDppHaEhK5avWqsseWa2Dt5BBhabdWSktS80oMQrL4TvAM9b5HMmyDnO+OkkbMXfUJG7eXqTIG6lqSOEbqVR+qYdP7uWb57WEJqzyh411GAVsDinPs7KvUeXItlcMdOUWzXBH6zscymV1LLVCtc8IePojzXHF9m5b5zGwBRdzcyUJkiu938ApmAayRdJrX1PmVguWUvt2ThQ62czItTyWJMW2An/hdDfMK7SiFQlGIdAbltHz3ycoh7j9V7GxNWBpbtcSdqm4XxRwTawc3cbZ+xfSv9qQfEkDKfZTwCkqWGI/ur250ItXlMlh6vUNWEYIg9A3GzbgmbqvTN8js2YMo87CU5y6nZ4dbJLDQJj9fc7yM7tZzJDZFtqOcU8+mZjYlq4VmifI23iHb1ZoT9E+kT2dolnP1AfiOkt7PQCSykBiXy5mv637IegWSKj9IKrYZf4Lu9+I7ub+mkRdlvYzehh/jaJ9n7HUH5b2IbgeNdkY7wx1yVzxS7pbvky6+nmVUtRllEFfweUQ0/nG017WoUYSxs+j2B4FV/F62EtHlMWZXYrjGHpthnNb1x66LKZ0Qe92INWHdfR/vqp02wMS8r1G4dJqHok8KmQ7947G13a4YXbsGgHcBvRuVu1eAi4/A5+ZixmdSXM73LupB/LH7O9yxLTVXJTyBbI1S49TIROrfVCOb/czZ9pM4JsZx8kUz8dQGv7gUWKxXvTH7QM/3J2OuXXgciUhqY+cgtaOliQQVOYthBLV3xpESZT3rmfEYNZxmpBbb24CRao86prn+i9TNOh8VxRJGXJfXHATJHs1T5txgc/opYrY8XjlGQQbRcoxIBcnVsMjmU1ymmIUL4dviJXndMAJ0Yet+c7O52/p98ytlmAsGBaTAmMhimAnvp1TWNGM9BpuitGj+t810CU2UhorrjPKGtThVC8WaXw04WFnT5fTjqmPyrQ0tN3CkLsctVy2xr0ZWgiWVZ1OrlFjjxJYsOiZv2cAoOvE+7sY0I/TwWcZqMoyIKNOftwP7w++Rfg67ljfovKYa50if3fzE/8aPYVey/Nq35+nH2sLPh/fP5TsylSKGOZ4k69d2PnH43+kq++sRXHQqGArWdwhx+hpwQC6JgT2uxehYU4Zbw7oNb6/HLikPyJROGK2ouyr+vzseESp9G50T4AyFrSqOQ0rroCYP4sMDFBrHn342EyZTMlSyk47rHSq89Y9/nI3zG5lX16Z5lxphguLOcZUndL8wNcrkyjH82jqg8Bo8OYkynrxZvbFno5lUS3OPr8Ko3mX9NoRPdYOKKjD07bvgFgpZ/RF+YzkWvJ/Hs/tUbfeGzGWLxNAjfDzHHMVSDwB5SabQLsIZHiBp43FjGkaienYoDd18hu2BGwOK7U3o70K/WY/kuuKdmdrykIBUdG2mvE91L1JtTbh20mOLbk1vCAamu7utlXeGU2ooVikbU/actcgmsC1FKk2qmj3GWeIWbj4tGIxE7BLcBWUvvcnd/lYxsMV4F917fWeFB/XbINN3qGvIyTpCalz1lVewdIGqeAS/gB8Mi+sA+BqDiX3VGD2eUunTRbSY+AuDy4E3Qx3hAhwnSXX+B0zuj3eQ1miS8Vux2z/l6/BkWtjKGU72aJkOCWhGcSf3+kFkkB15vGOsQrSdFr6qTj0gBYiOlnBO41170gOWHSUoBVRU2JjwppYdhIFDfu7tIRHccSNM5KZOFDPz0TGMAjzzEpeLwTWp+kn201kU6NjbiMQJx83+LX1e1tZ10kuChJZ/XBUQ1dwaBHjTDJDqOympEk8X2M3VtVw21JksChA8w1tTefO3RJ1FMbqZ01bHHkudDB/OhLfe7P5GOHaI28ZXKTMuqo0hLWQ4HabBsGG7NbP1RiXtETz074er6w/OerJWEqjmkq2y51q1BVI+JUudnVa3ogBpzdhFE7fC7kybrAt2Z6RqDjATAUEYeYK45WMupBKQRtQlU+uNsjnzj6ZmGrezA+ASrWxQ6LMkHRXqXwNq7ftv28dUx/ZSJciDXP2SWJsWaN0FjPX9Yko6LobZ7aYW/IdUktI9apTLyHS8DyWPyuoZyxN1TK/vtfxk3HwWh6JczZC8Ftn0bIJay2g+n5wd7lm9rEsKO+svqVmi+c1j88hSCxbzrg4+HEP0Nt1/B6YW1XVm09T1CpAKjc9n18hjqsaFGdfyva1ZG0Xu3ip6N6JGpyTSqY5h4BOlpLPaOnyw45PdXTN+DtAKg7DLrLFTnWusoSBHk3s0d7YouJHq85/R09Tfc37ENXZF48eAYLnq9GLioNcwDZrC6FW6godB8JnqYUPvn0pWLfQz0lM0Yy8Mybgn84Ds3Q9bDP10bLyOV+qzxa4Rd9Dhu7cju8mMaONXK3UqmBQ9qIg7etIwEqM/kECk/Dzja4Bs1xR+Q/tCbc8IKrSGsTdJJ0vge7IG20W687uVmK6icWQ6cD3lwFzgNMGtFvO5qyJeKflGLAAcQZOrkxVwy3cWvqlGpvjmf9Qe6Ap20MPbV92DPV0OhFM4kz8Yr0ffC2zLWSQ1kqY6QdQrttR3kh1YLtQd1kCEv5hVoPIRWl5ERcUTttBIrWp6Xs5Ehh5OUUwI5aEBvuiDmUoENmnVw1FohCrbRp1A1E+XSlWVOTi7ADW+5Ohb9z1vK4qx5R5lPdGCPBJZ00mC+Ssp8VUbgpGAvXWMuWQQRbCqI6Rr2jtxZxtfP7W/8onz+yz0Gs76LaT5HX9ecyiZCB/ZR/gFtMxPsDwohoeCRtiuLxE1GM1vUEUgBv86+eehL58/P56QFGQ/MqOe/vC76L63jzmeax4exd/OKTUvkXg+fOJUHych9xt/9goJMrapSgvXrj8+8vk/N80f22Sewj6cyGqt1B6mztoeklVHHraouhvHJaG/OuBz6DHKMpFmQULU1bRWlyYE0RPXYYkUycIemN7TLtgNCJX6BqdyxDKkegO7nJK5xQ7OVYDZTMf9bVHidtk6DQX9Et+V9M7esgbsYBdEeUpsB0Xvw2kd9+rI7V+m47u+O/tq7mw7262HU1WlS9uFzsV6JxIHNmUCy0QS9e077JGRFbG65z3/dOKB/Zk+yDdKpUmdXjn/aS3N5nv4fK7bMHHmPlHd4E2+iTbV5rpzScRnxk6KARuDTJ8Q1LpK2mP8gj1EbuJ9RIyY+EWK4hCiIDBAS1Tm2IEXAFfgKPgdL9O6mAa06wjCcUAL6EsxPQWO9VNegBPm/0GgkZbDxCynxujX/92vmGcjZRMAY45puak2sFLCLSwXpEsyy5fnF0jGJBhm+fNSHKKUUfy+276A7/feLOFxxUuHRNJI2Osenxyvf8DAGObT60pfTTlhEg9u/KKkhJqm5U1/+BEcSkpFDA5XeCqxwXmPac1jcuZ3JWQ+p0NdWzb/5v1ZvF8GtMTFFEdQjpLO0bwPb0BHNWnip3liDXI2fXf05jjvfJ0NpjLCUgfTh9CMFYVFKEd4Z/OG/2C+N435mnK+9t1gvCiVcaaH7rK4+PjCvpVNiz+t2QyqH1O8x3JKZVl6Q+Lp/XK8wMjVMslOq9FdSw5FtUs/CptXH9PW+wbWHgrV17R5jTVOtGtKFu3nb80T+E0tv9QkzW3J2dbaw/8ddAKZ0pxIaEqLjlPrji3VgJ3GvdFvlqD8075woxh4fVt0JZE0KVFsAvqhe0dqN9b35jtSpnYMXkU+vZq+IAHad3IHc2s/LYrnD1anfG46IFiMIr9oNbZDWvwthqYNqOigaKd/XlLU4XHfk/PXIjPsLy/9/kAtQ+/wKH+hI/IROWj5FPvTZAT9f7j4ZXQyG4M0TujMAFXYkKvEHv1xhySekgXGGqNxWeWKlf8dDAlLuB1cb/qOD+rk7cmwt+1yKpk9cudqBanTi6zTbXRtV8qylNtjyOVKy1HTz0GW9rjt6sSjAZcT5R+KdtyYb0zyqG9pSLuCw5WBwAn7fjBjKLLoxLXMI+52L9cLwIR2B6OllJZLHJ8vDxmWdtF+QJnmt1rsHPIWY20lftk8fYePkAIg6Hgn532QoIpegMxiWgAOfe5/U44APR8Ac0NeZrVh3gEhs12W+tVSiWiUQekf/YBECUy5fdYbA08dd7VzPAP9aiVcIB9k6tY7WdJ1wNV+bHeydNtmC6G5ICtFC1ZwmJU/j8hf0I8TRVKSiz5oYIa93EpUI78X8GYIAZabx47/n8LDAAJ0nNtP1rpROprqKMBRecShca6qXuTSI3jZBLOB3Vp381B5rCGhjSvh/NSVkYp2qIdP/Bg=\"},\"dec/dictionary-browser.js\":function(e,t,r){var n=e(\"base64-js\");r.init=function(){return(0,e(\"./decode\").BrotliDecompressBuffer)(n.toByteArray(e(\"./dictionary.bin.js\")))}},\"dec/huffman.js\":function(e,t,r){function n(e,t){this.bits=e,this.value=t}\nfunction o(e,t){for(var r=1<<t-1;e&r;)r>>=1;return(e&r-1)+r}\nfunction a(e,t,r,o,a){do{o-=r,e[t+o]=new n(a.bits,a.value)}while(o>0)}\nfunction i(e,t,r){for(var n=1<<t-r;t<s&&!((n-=e[t])<=0);)++t,n<<=1;return t-r}\nr.HuffmanCode=n;const s=15;r.BrotliBuildHuffmanTable=function(e,t,r,d,l){var u,c,f,h,p,m,w,b,y,g,v,A=t,U=new Int32Array(16),x=new Int32Array(16);for(v=new Int32Array(l),f=0;f<l;f++)U[d[f]]++;for(x[1]=0,c=1;c<s;c++)x[c+1]=x[c]+U[c];for(f=0;f<l;f++)0!==d[f]&&(v[x[d[f]]++]=f);if(b=r,y=1<<b,g=y,1===x[s]){for(h=0;h<g;++h)e[t+h]=new n(0,65535&v[0]);return g}\nfor(h=0,f=0,c=1,p=2;c<=r;++c,p<<=1)\nfor(;U[c]>0;--U[c])u=new n(255&c,65535&v[f++]),a(e,t+h,p,y,u),h=o(h,c);for(w=g-1,m=-1,c=r+1,p=2;c<=s;++c,p<<=1)\nfor(;U[c]>0;--U[c])(h&w)!==m&&(t+=y,b=i(U,c,r),y=1<<b,g+=y,m=h&w,e[A+m]=new n(b+r&255,t-A-m&65535)),u=new n(c-r&255,65535&v[f++]),a(e,t+(h>>r),p,y,u),h=o(h,c);return g}},\"dec/prefix.js\":function(e,t,r){function n(e,t){this.offset=e,this.nbits=t}\nr.kBlockLengthPrefixCode=[new n(1,2),new n(5,2),new n(9,2),new n(13,2),new n(17,3),new n(25,3),new n(33,3),new n(41,3),new n(49,4),new n(65,4),new n(81,4),new n(97,4),new n(113,5),new n(145,5),new n(177,5),new n(209,5),new n(241,6),new n(305,6),new n(369,7),new n(497,8),new n(753,9),new n(1265,10),new n(2289,11),new n(4337,12),new n(8433,13),new n(16625,24)],r.kInsertLengthPrefixCode=[new n(0,0),new n(1,0),new n(2,0),new n(3,0),new n(4,0),new n(5,0),new n(6,1),new n(8,1),new n(10,2),new n(14,2),new n(18,3),new n(26,3),new n(34,4),new n(50,4),new n(66,5),new n(98,5),new n(130,6),new n(194,7),new n(322,8),new n(578,9),new n(1090,10),new n(2114,12),new n(6210,14),new n(22594,24)],r.kCopyLengthPrefixCode=[new n(2,0),new n(3,0),new n(4,0),new n(5,0),new n(6,0),new n(7,0),new n(8,0),new n(9,0),new n(10,1),new n(12,1),new n(14,2),new n(18,2),new n(22,3),new n(30,3),new n(38,4),new n(54,4),new n(70,5),new n(102,5),new n(134,6),new n(198,7),new n(326,8),new n(582,9),new n(1094,10),new n(2118,24)],r.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],r.kCopyRangeLut=[0,8,0,8,16,0,16,8,16]},\"dec/streams.js\":function(e,t,r){function n(e){this.buffer=e,this.pos=0}\nfunction o(e){this.buffer=e,this.pos=0}\nn.prototype.read=function(e,t,r){this.pos+r>this.buffer.length&&(r=this.buffer.length-this.pos);for(var n=0;n<r;n++)e[t+n]=this.buffer[this.pos+n];return this.pos+=r,r},r.BrotliInput=n,o.prototype.write=function(e,t){if(this.pos+t>this.buffer.length)throw new Error(\"Output buffer is not large enough\");return this.buffer.set(e.subarray(0,t),this.pos),this.pos+=t,t},r.BrotliOutput=o},\"dec/transform.js\":function(e,t,r){function n(e,t,r){this.prefix=new Uint8Array(e.length),this.transform=t,this.suffix=new Uint8Array(r.length);for(var n=0;n<e.length;n++)this.prefix[n]=e.charCodeAt(n);for(n=0;n<r.length;n++)this.suffix[n]=r.charCodeAt(n)}\nfunction o(e,t){return e[t]<192?(e[t]>=97&&e[t]<=122&&(e[t]^=32),1):e[t]<224?(e[t+1]^=32,2):(e[t+2]^=5,3)}\nvar a=e(\"./dictionary\");const w=10,b=11;var B=[new n(\"\",0,\"\"),new n(\"\",0,\" \"),new n(\" \",0,\" \"),new n(\"\",12,\"\"),new n(\"\",w,\" \"),new n(\"\",0,\" the \"),new n(\" \",0,\"\"),new n(\"s \",0,\" \"),new n(\"\",0,\" of \"),new n(\"\",w,\"\"),new n(\"\",0,\" and \"),new n(\"\",13,\"\"),new n(\"\",1,\"\"),new n(\", \",0,\" \"),new n(\"\",0,\", \"),new n(\" \",w,\" \"),new n(\"\",0,\" in \"),new n(\"\",0,\" to \"),new n(\"e \",0,\" \"),new n(\"\",0,'\"'),new n(\"\",0,\".\"),new n(\"\",0,'\">'),new n(\"\",0,\"\\n\"),new n(\"\",3,\"\"),new n(\"\",0,\"]\"),new n(\"\",0,\" for \"),new n(\"\",14,\"\"),new n(\"\",2,\"\"),new n(\"\",0,\" a \"),new n(\"\",0,\" that \"),new n(\" \",w,\"\"),new n(\"\",0,\". \"),new n(\".\",0,\"\"),new n(\" \",0,\", \"),new n(\"\",15,\"\"),new n(\"\",0,\" with \"),new n(\"\",0,\"'\"),new n(\"\",0,\" from \"),new n(\"\",0,\" by \"),new n(\"\",16,\"\"),new n(\"\",17,\"\"),new n(\" the \",0,\"\"),new n(\"\",4,\"\"),new n(\"\",0,\". The \"),new n(\"\",b,\"\"),new n(\"\",0,\" on \"),new n(\"\",0,\" as \"),new n(\"\",0,\" is \"),new n(\"\",7,\"\"),new n(\"\",1,\"ing \"),new n(\"\",0,\"\\n\\t\"),new n(\"\",0,\":\"),new n(\" \",0,\". \"),new n(\"\",0,\"ed \"),new n(\"\",20,\"\"),new n(\"\",18,\"\"),new n(\"\",6,\"\"),new n(\"\",0,\"(\"),new n(\"\",w,\", \"),new n(\"\",8,\"\"),new n(\"\",0,\" at \"),new n(\"\",0,\"ly \"),new n(\" the \",0,\" of \"),new n(\"\",5,\"\"),new n(\"\",9,\"\"),new n(\" \",w,\", \"),new n(\"\",w,'\"'),new n(\".\",0,\"(\"),new n(\"\",b,\" \"),new n(\"\",w,'\">'),new n(\"\",0,'=\"'),new n(\" \",0,\".\"),new n(\".com/\",0,\"\"),new n(\" the \",0,\" of the \"),new n(\"\",w,\"'\"),new n(\"\",0,\". This \"),new n(\"\",0,\",\"),new n(\".\",0,\" \"),new n(\"\",w,\"(\"),new n(\"\",w,\".\"),new n(\"\",0,\" not \"),new n(\" \",0,'=\"'),new n(\"\",0,\"er \"),new n(\" \",b,\" \"),new n(\"\",0,\"al \"),new n(\" \",b,\"\"),new n(\"\",0,\"='\"),new n(\"\",b,'\"'),new n(\"\",w,\". \"),new n(\" \",0,\"(\"),new n(\"\",0,\"ful \"),new n(\" \",w,\". \"),new n(\"\",0,\"ive \"),new n(\"\",0,\"less \"),new n(\"\",b,\"'\"),new n(\"\",0,\"est \"),new n(\" \",w,\".\"),new n(\"\",b,'\">'),new n(\" \",0,\"='\"),new n(\"\",w,\",\"),new n(\"\",0,\"ize \"),new n(\"\",b,\".\"),new n(\"Â \",0,\"\"),new n(\" \",0,\",\"),new n(\"\",w,'=\"'),new n(\"\",b,'=\"'),new n(\"\",0,\"ous \"),new n(\"\",b,\", \"),new n(\"\",w,\"='\"),new n(\" \",w,\",\"),new n(\" \",b,'=\"'),new n(\" \",b,\", \"),new n(\"\",b,\",\"),new n(\"\",b,\"(\"),new n(\"\",b,\". \"),new n(\" \",b,\".\"),new n(\"\",b,\"='\"),new n(\" \",b,\". \"),new n(\" \",w,'=\"'),new n(\" \",b,\"='\"),new n(\" \",w,\"='\")];r.kTransforms=B,r.kNumTransforms=B.length,r.transformDictionaryWord=function(e,t,r,n,i){var s,d=B[i].prefix,l=B[i].suffix,u=B[i].transform,c=u<12?0:u-11,f=0,h=t;c>n&&(c=n);for(var p=0;p<d.length;)e[t++]=d[p++];for(r+=c,n-=c,u<=9&&(n-=u),f=0;f<n;f++)e[t++]=a.dictionary[r+f];if(s=t-n,u===w)o(e,s);else if(u===b)\nfor(;n>0;){var g=o(e,s);s+=g,n-=g}\nfor(var v=0;v<l.length;)e[t++]=l[v++];return t-h}},\"node_modules/base64-js/index.js\":function(e,t,r){\"use strict\";function n(e){var t=e.length;if(t%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");return \"=\"===e[t-2]?2:\"=\"===e[t-1]?1:0}\nfunction o(e){return 3*e.length/4-n(e)}\nfunction a(e){var t,r,o,a,i,s,d=e.length;i=n(e),s=new c(3*d/4-i),o=i>0?d-4:d;var l=0;for(t=0,r=0;t<o;t+=4,r+=3)a=u[e.charCodeAt(t)]<<18|u[e.charCodeAt(t+1)]<<12|u[e.charCodeAt(t+2)]<<6|u[e.charCodeAt(t+3)],s[l++]=a>>16&255,s[l++]=a>>8&255,s[l++]=255&a;return 2===i?(a=u[e.charCodeAt(t)]<<2|u[e.charCodeAt(t+1)]>>4,s[l++]=255&a):1===i&&(a=u[e.charCodeAt(t)]<<10|u[e.charCodeAt(t+1)]<<4|u[e.charCodeAt(t+2)]>>2,s[l++]=a>>8&255,s[l++]=255&a),s}\nfunction i(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}\nfunction s(e,t,r){for(var n,o=[],a=t;a<r;a+=3)n=(e[a]<<16)+(e[a+1]<<8)+e[a+2],o.push(i(n));return o.join(\"\")}\nfunction d(e){for(var t,r=e.length,n=r%3,o=\"\",a=[],i=16383,d=0,u=r-n;d<u;d+=i)a.push(s(e,d,d+i>u?u:d+i));return 1===n?(t=e[r-1],o+=l[t>>2],o+=l[t<<4&63],o+=\"==\"):2===n&&(t=(e[r-2]<<8)+e[r-1],o+=l[t>>10],o+=l[t>>4&63],o+=l[t<<2&63],o+=\"=\"),a.push(o),a.join(\"\")}\nr.byteLength=o,r.toByteArray=a,r.fromByteArray=d;for(var l=[],u=[],c=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",h=0,p=f.length;h<p;++h)l[h]=f[h],u[f.charCodeAt(h)]=h;u[\"-\".charCodeAt(0)]=62,u[\"_\".charCodeAt(0)]=63}};for(var r in t)t[r].folder=r.substring(0,r.lastIndexOf(\"/\")+1);var n=function(e){var r=[];return e=e.split(\"/\").every(function(e){return \"..\"==e?r.pop():\".\"==e||\"\"==e||r.push(e)})?r.join(\"/\"):null,e?t[e]||t[e+\".js\"]||t[e+\"/index.js\"]:null},o=function(e,t){return e?n(e.folder+\"node_modules/\"+t)||o(e.parent,t):null},a=function(e,t){var r=t.match(/^\\//)?null:e?t.match(/^\\.\\.?\\//)?n(e.folder+t):o(e,t):n(t);if(!r)throw \"module not found: \"+t;return r.exports||(r.parent=e,r(a.bind(null,r),r,r.exports={})),r.exports};return a(null,e)},decompress:function(e){this.exports||(this.exports=this.require(\"decompress.js\"));try{return this.exports(e)}catch(e){}},hasUnityMarker:function(e){var t=\"UnityWeb Compressed Content (brotli)\";if(!e.length)return!1;var r=1&e[0]?14&e[0]?4:7:1,n=e[0]&(1<<r)-1,o=1+(Math.log(t.length-1)/Math.log(2)>>3);if(commentOffset=r+1+2+1+2+(o<<3)+7>>3,17==n||commentOffset>e.length)return!1;for(var a=n+(6+(o<<4)+(t.length-1<<6)<<r),i=0;i<commentOffset;i++,a>>>=8)\nif(e[i]!=(255&a))return!1;return String.fromCharCode.apply(null,e.subarray(commentOffset,commentOffset+t.length))==t}},decompress:function(e,t){var r=this.gzip.hasUnityMarker(e)?this.gzip:this.brotli.hasUnityMarker(e)?this.brotli:this.identity;if(this.serverSetupWarningEnabled&&r!=this.identity&&(console.log(\"You can reduce your startup time if you configure your web server to host .unityweb files using \"+(r==this.gzip?\"gzip\":\"brotli\")+\" compression.\"),this.serverSetupWarningEnabled=!1),\"function\"!=typeof t)return r.decompress(e);if(!r.worker){var n=URL.createObjectURL(new Blob([\"this.require = \",r.require.toString(),\"; this.decompress = \",r.decompress.toString(),\"; this.onmessage = \",function(e){var t={id:e.data.id,decompressed:this.decompress(e.data.compressed)};postMessage(t,t.decompressed?[t.decompressed.buffer]:[])}.toString(),\"; postMessage({ ready: true });\"],{type:\"text/javascript\"}));r.worker=new Worker(n),r.worker.onmessage=function(e){return e.data.ready?void URL.revokeObjectURL(n):(this.callbacks[e.data.id](e.data.decompressed),void delete this.callbacks[e.data.id])},r.worker.callbacks={},r.worker.nextCallbackId=0}\nvar o=r.worker.nextCallbackId++;r.worker.callbacks[o]=t,r.worker.postMessage({id:o,compressed:e},[e.buffer])},serverSetupWarningEnabled:!0},Cryptography:{crc32:function(e){var t=UnityLoader.Cryptography.crc32.module;if(!t){var r=new ArrayBuffer(16777216),n=function(e,t,r){\"use asm\";var n=new e.Uint8Array(r);var o=new e.Uint32Array(r);function a(e,t){e=e|0;t=t|0;var r=0;for(r=o[1024>>2]|0;t;e=e+1|0,t=t-1|0)r=o[(r&255^n[e])<<2>>2]^r>>>8^4278190080;o[1024>>2]=r}\nreturn{process:a}}({Uint8Array:Uint8Array,Uint32Array:Uint32Array},null,r);t=UnityLoader.Cryptography.crc32.module={buffer:r,HEAPU8:new Uint8Array(r),HEAPU32:new Uint32Array(r),process:n.process,crc32:1024,data:1028};for(var o=0;o<256;o++){for(var a=255^o,i=0;i<8;i++)a=a>>>1^(1&a?3988292384:0);t.HEAPU32[o]=a}}\nt.HEAPU32[t.crc32>>2]=0;for(var s=0;s<e.length;){var d=Math.min(t.HEAPU8.length-t.data,e.length-s);t.HEAPU8.set(e.subarray(s,s+d),t.data),crc=t.process(t.data,d),s+=d}\nvar l=t.HEAPU32[t.crc32>>2];return new Uint8Array([l>>24,l>>16,l>>8,l])},md5:function(e){var t=UnityLoader.Cryptography.md5.module;if(!t){var r=new ArrayBuffer(16777216),n=function(e,t,r){\"use asm\";var n=new e.Uint32Array(r);function o(e,t){e=e|0;t=t|0;var r=0,o=0,a=0,i=0,s=0,d=0,l=0,u=0,c=0,f=0,h=0,p=0;r=n[128]|0,o=n[129]|0,a=n[130]|0,i=n[131]|0;for(;t;e=e+64|0,t=t-1|0){s=r;d=o;l=a;u=i;for(f=0;(f|0)<512;f=f+8|0){p=n[f>>2]|0;r=r+(n[f+4>>2]|0)+(n[e+(p>>>14)>>2]|0)+((f|0)<128?i^o&(a^i):(f|0)<256?a^i&(o^a):(f|0)<384?o^a^i:a^(o|~i))|0;h=(r<<(p&31)|r>>>32-(p&31))+o|0;r=i;i=a;a=o;o=h}\nr=r+s|0;o=o+d|0;a=a+l|0;i=i+u|0}\nn[128]=r;n[129]=o;n[130]=a;n[131]=i}\nreturn{process:o}}({Uint32Array:Uint32Array},null,r);t=UnityLoader.Cryptography.md5.module={buffer:r,HEAPU8:new Uint8Array(r),HEAPU32:new Uint32Array(r),process:n.process,md5:512,data:576},t.HEAPU32.set(new Uint32Array([7,3614090360,65548,3905402710,131089,606105819,196630,3250441966,262151,4118548399,327692,1200080426,393233,2821735955,458774,4249261313,524295,1770035416,589836,2336552879,655377,4294925233,720918,2304563134,786439,1804603682,851980,4254626195,917521,2792965006,983062,1236535329,65541,4129170786,393225,3225465664,720910,643717713,20,3921069994,327685,3593408605,655369,38016083,983054,3634488961,262164,3889429448,589829,568446438,917513,3275163606,196622,4107603335,524308,1163531501,851973,2850285829,131081,4243563512,458766,1735328473,786452,2368359562,327684,4294588738,524299,2272392833,720912,1839030562,917527,4259657740,65540,2763975236,262155,1272893353,458768,4139469664,655383,3200236656,851972,681279174,11,3936430074,196624,3572445317,393239,76029189,589828,3654602809,786443,3873151461,983056,530742520,131095,3299628645,6,4096336452,458762,1126891415,917519,2878612391,327701,4237533241,786438,1700485571,196618,2399980690,655375,4293915773,65557,2240044497,524294,1873313359,983050,4264355552,393231,2734768916,851989,1309151649,262150,4149444226,720906,3174756917,131087,718787259,589845,3951481745]))}\nt.HEAPU32.set(new Uint32Array([1732584193,4023233417,2562383102,271733878]),t.md5>>2);for(var o=0;o<e.length;){var a=-64&Math.min(t.HEAPU8.length-t.data,e.length-o);if(t.HEAPU8.set(e.subarray(o,o+a),t.data),o+=a,t.process(t.data,a>>6),e.length-o<64){if(a=e.length-o,t.HEAPU8.set(e.subarray(e.length-a,e.length),t.data),o+=a,t.HEAPU8[t.data+a++]=128,a>56){for(var i=a;i<64;i++)t.HEAPU8[t.data+i]=0;t.process(t.data,1),a=0}\nfor(i=a;i<64;i++)t.HEAPU8[t.data+i]=0;var s=e.length,d=0;for(i=56;i<64;i++,d=(224&s)>>5,s/=256)t.HEAPU8[t.data+i]=((31&s)<<3)+d;t.process(t.data,1)}}\nreturn new Uint8Array(t.HEAPU8.subarray(t.md5,t.md5+16))},sha1:function(e){var t=UnityLoader.Cryptography.sha1.module;if(!t){var r=new ArrayBuffer(16777216),n=function(e,t,r){\"use asm\";var n=new e.Uint32Array(r);function o(e,t){e=e|0;t=t|0;var r=0,o=0,a=0,i=0,s=0,d=0,l=0,u=0,c=0,f=0,h=0,p=0;r=n[80]|0,o=n[81]|0,a=n[82]|0,i=n[83]|0,s=n[84]|0;for(;t;e=e+64|0,t=t-1|0){d=r;l=o;u=a;c=i;f=s;for(p=0;(p|0)<320;p=p+4|0,s=i,i=a,a=o<<30|o>>>2,o=r,r=h){if((p|0)<64){h=n[e+p>>2]|0;h=h<<24&4278190080|h<<8&16711680|h>>>8&65280|h>>>24&255}else{h=n[p-12>>2]^n[p-32>>2]^n[p-56>>2]^n[p-64>>2];h=h<<1|h>>>31}\nn[p>>2]=h;h=h+((r<<5|r>>>27)+s)+((p|0)<80?(o&a|~o&i|0)+1518500249|0:(p|0)<160?(o^a^i)+1859775393|0:(p|0)<240?(o&a|o&i|a&i)+2400959708|0:(o^a^i)+3395469782|0)|0}\nr=r+d|0;o=o+l|0;a=a+u|0;i=i+c|0;s=s+f|0}\nn[80]=r;n[81]=o;n[82]=a;n[83]=i;n[84]=s}\nreturn{process:o}}({Uint32Array:Uint32Array},null,r);t=UnityLoader.Cryptography.sha1.module={buffer:r,HEAPU8:new Uint8Array(r),HEAPU32:new Uint32Array(r),process:n.process,sha1:320,data:384}}\nt.HEAPU32.set(new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),t.sha1>>2);for(var o=0;o<e.length;){var a=-64&Math.min(t.HEAPU8.length-t.data,e.length-o);if(t.HEAPU8.set(e.subarray(o,o+a),t.data),o+=a,t.process(t.data,a>>6),e.length-o<64){if(a=e.length-o,t.HEAPU8.set(e.subarray(e.length-a,e.length),t.data),o+=a,t.HEAPU8[t.data+a++]=128,a>56){for(var i=a;i<64;i++)t.HEAPU8[t.data+i]=0;t.process(t.data,1),a=0}\nfor(i=a;i<64;i++)t.HEAPU8[t.data+i]=0;var s=e.length,d=0;for(i=63;i>=56;i--,d=(224&s)>>5,s/=256)t.HEAPU8[t.data+i]=((31&s)<<3)+d;t.process(t.data,1)}}\nvar l=new Uint8Array(20);for(i=0;i<l.length;i++)l[i]=t.HEAPU8[t.sha1+(-4&i)+3-(3&i)];return l}},Error:{init:(Error.stackTraceLimit=50,window.addEventListener(\"error\",function(e){var t=UnityLoader.Error.getModule(e);if(!t)return UnityLoader.Error.handler(e);var r=t.useWasm?t.wasmSymbolsUrl:t.asmSymbolsUrl;if(!r)return UnityLoader.Error.handler(e,t);var n=new XMLHttpRequest;n.open(\"GET\",t.resolveBuildUrl(r)),n.responseType=\"arraybuffer\",n.onload=function(){UnityLoader.loadCode(UnityLoader.Compression.decompress(new Uint8Array(n.response)),function(r){t.demangleSymbol=UnityLoader[r](),UnityLoader.Error.handler(e,t)})},n.send()}),!0),stackTraceFormat:-1!=navigator.userAgent.indexOf(\"Chrome\")?\"(\\\\s+at\\\\s+)(([\\\\w\\\\d_\\\\.]*?)([\\\\w\\\\d_$]+)(/[\\\\w\\\\d_\\\\./]+|))(\\\\s+\\\\[.*\\\\]|)\\\\s*\\\\((blob:.*)\\\\)\":\"(\\\\s*)(([\\\\w\\\\d_\\\\.]*?)([\\\\w\\\\d_$]+)(/[\\\\w\\\\d_\\\\./]+|))(\\\\s+\\\\[.*\\\\]|)\\\\s*@(blob:.*)\",stackTraceFormatWasm:-1!=navigator.userAgent.indexOf(\"Chrome\")?\"((\\\\s+at\\\\s*)\\\\s\\\\(<WASM>\\\\[(\\\\d+)\\\\]\\\\+\\\\d+\\\\))()\":\"((\\\\s*)wasm-function\\\\[(\\\\d+)\\\\])@(blob:.*)\",blobParseRegExp:new RegExp(\"^(blob:.*)(:\\\\d+:\\\\d+)$\"),getModule:function(e){var t=e.message.match(new RegExp(this.stackTraceFormat,\"g\"));for(var r in t){var n=t[r].match(new RegExp(\"^\"+this.stackTraceFormat+\"$\")),o=n[7].match(this.blobParseRegExp);if(o&&UnityLoader.Blobs[o[1]]&&UnityLoader.Blobs[o[1]].Module)return UnityLoader.Blobs[o[1]].Module}},demangle:function(e,t){var r=e.message;return t?(r=r.replace(new RegExp(this.stackTraceFormat,\"g\"),function(e){var r=e.match(new RegExp(\"^\"+this.stackTraceFormat+\"$\")),n=r[7].match(this.blobParseRegExp),o=t.demangleSymbol?t.demangleSymbol(r[4]):r[4],a=n&&UnityLoader.Blobs[n[1]]&&UnityLoader.Blobs[n[1]].url?UnityLoader.Blobs[n[1]].url:\"blob\";return r[1]+o+(r[2]!=o?\" [\"+r[2]+\"]\":\"\")+\" (\"+(n?a.substr(a.lastIndexOf(\"/\")+1)+n[2]:r[7])+\")\"}.bind(this)),t.useWasm&&(r=r.replace(new RegExp(this.stackTraceFormatWasm,\"g\"),function(e){var r=e.match(new RegExp(\"^\"+this.stackTraceFormatWasm+\"$\")),n=t.demangleSymbol?t.demangleSymbol(r[3]):r[3],o=r[4].match(this.blobParseRegExp),a=o&&UnityLoader.Blobs[o[1]]&&UnityLoader.Blobs[o[1]].url?UnityLoader.Blobs[o[1]].url:\"blob\";return(n==r[3]?r[1]:r[2]+n+\" [wasm:\"+r[3]+\"]\")+(r[4]?\" (\"+(o?a.substr(a.lastIndexOf(\"/\")+1)+o[2]:r[4])+\")\":\"\")}.bind(this))),r):r},handler:function(e,t){var r=t?this.demangle(e,t):e.message,n=\"uncategorized\";-1!=r.indexOf(\"UnknownError\")?n=\"unknownError\":-1!=r.indexOf(\"DISABLE_EXCEPTION_CATCHING\")?n=\"disabledExceptionCatching\":-1!=r.indexOf(\"Cannot enlarge memory arrays\")?n=\"gameNeedsMoreMemory\":(-1!=r.indexOf(\"Invalid array buffer length\")||-1!=r.indexOf(\"out of memory\")||-1!=r.indexOf(\"Uncaught RangeError: Array buffer allocation failed\")||r.indexOf(\"Invalid typed array length\"))&&(n=\"browserOutOfMemory\"),PokiSDK.customEvent(\"game\",\"crash\",{type:n,message:r}),t&&t.errorhandler&&t.errorhandler(r,e.filename,e.lineno)||(console.log(\"Invoking error handler due to\\n\"+r),\"function\"==typeof dump&&dump(\"Invoking error handler due to\\n\"+r),-1!=r.indexOf(\"UnknownError\")||-1!=r.indexOf(\"Program terminated with exit(0)\")||this.didShowErrorMessage)||(r=\"An error occurred running the Unity content on this page. See your browser JavaScript console for more info. The error was:\\n\"+r,-1!=r.indexOf(\"DISABLE_EXCEPTION_CATCHING\")?r=\"An exception has occurred, but exception handling has been disabled in this build. If you are the developer of this content, enable exceptions in your project WebGL player settings to be able to catch the exception or see the stack trace.\":-1!=r.indexOf(\"Cannot enlarge memory arrays\")?r=\"Out of memory. If you are the developer of this content, try allocating more memory to your WebGL build in the WebGL player settings.\":-1==r.indexOf(\"Invalid array buffer length\")&&-1==r.indexOf(\"Invalid typed array length\")&&-1==r.indexOf(\"out of memory\")&&-1==r.indexOf(\"could not allocate memory\")||(r=\"The browser could not allocate enough memory for the WebGL content. If you are the developer of this content, try allocating less memory to your WebGL build in the WebGL player settings.\"),alert(r),this.didShowErrorMessage=!0)},popup:function(e,t,r){r=r||[{text:\"OK\"}];var n=document.createElement(\"div\");n.style.cssText=\"position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); text-align: center; border: 1px solid black; padding: 5px; background: #E8E8E8\";var o=document.createElement(\"span\");o.textContent=t,n.appendChild(o),n.appendChild(document.createElement(\"br\"));for(var a=0;a<r.length;a++){var i=document.createElement(\"button\");r[a].text&&(i.textContent=r[a].text),r[a].callback&&(i.onclick=r[a].callback),i.style.margin=\"5px\",i.addEventListener(\"click\",function(){e.container.removeChild(n)}),n.appendChild(i)}\ne.container.appendChild(n)}},Job:{schedule:function(e,t,r,n,o){o=o||{};var a=e.Jobs[t];if(a||(a=e.Jobs[t]={dependencies:{},dependants:{}}),a.callback)throw \"[UnityLoader.Job.schedule] job '\"+t+\"' has been already scheduled\";if(\"function\"!=typeof n)throw \"[UnityLoader.Job.schedule] job '\"+t+\"' has invalid callback\";if(\"object\"!=typeof o)throw \"[UnityLoader.Job.schedule] job '\"+t+\"' has invalid parameters\";a.callback=function(e,t){a.starttime=performance.now(),n(e,t)},a.parameters=o,a.complete=function(r){for(var n in a.endtime=performance.now(),a.result={value:r},a.dependants){var o=e.Jobs[n];o.dependencies[t]=a.dependants[n]=!1;var i=\"function\"!=typeof o.callback;for(var s in o.dependencies)i=i||o.dependencies[s];if(!i){if(o.executed)throw \"[UnityLoader.Job.schedule] job '\"+t+\"' has already been executed\";o.executed=!0,setTimeout(o.callback.bind(null,e,o),0)}}};var i=!1;r.forEach(function(r){var n=e.Jobs[r];n||(n=e.Jobs[r]={dependencies:{},dependants:{}}),(a.dependencies[r]=n.dependants[t]=!n.result)&&(i=!0)}),i||(a.executed=!0,setTimeout(a.callback.bind(null,e,a),0))},result:function(e,t){var r=e.Jobs[t];if(!r)throw \"[UnityLoader.Job.result] job '\"+t+\"' does not exist\";if(\"object\"!=typeof r.result)throw \"[UnityLoader.Job.result] job '\"+t+\"' has invalid result\";return r.result.value}},Progress:{Styles:{Dark:{progressLogoUrl:\"data:image/png;base64,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\",progressEmptyUrl:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAATUlEQVRo3u3aIQ4AIAwEQUr4/5cPiyMVBDOj0M2mCKgkGdAwjYCudZzLOLiITYPrCdEgGkSDaEA0iAbRIBpEA6JBNHx1vnL7V4NNwxsbCNMGI3YImu0AAAAASUVORK5CYII=\",progressFullUrl:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAAO0lEQVRo3u3SQREAAAjDMMC/56EB3omEXjtJCg5GAkyDaTANpsE0YBpMg2kwDaYB02AaTINpMA2Yhr8FO18EIBpZMeQAAAAASUVORK5CYII=\"},Light:{progressLogoUrl:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAACCCAYAAAC+etHhAAAACXBIWXMAAAsSAAALEgHS3X78AAAIhUlEQVR42u2dzW3bSBTH/yFcgNIBg5wDMKccPa5ATAVxKkhUga0KbFdgdmCpglDHnFZAzsGyBHWgPYjcMIQlkm++3sy8P7AInI3tGfKnN+9rZt4cj0eIRLaVySMQudBV/4v3Hz7JE+GvAoACcA2gBLAC8Dj3h/z+9dMfaCKWyntgqfbrvpYU0LxaNBELLQZgFSP/XgW3dIq8LodlD665UgBqAU302nLYB2uh+fOWApqoWw7LC36WrtgvnwKaPanW0kzxs0wsvQsABwEtnbTD0pOFKQFUAlq8aYelIT9LV9cCWnxph9KCnxW1nyagjb+8zmoVzMeat/81Alo4flZntUJTCaZVgtRBy3G5vBOargU0fnoJ1GoF6ael2iZURghZF7AUAhqfl/EQ+YdIQGOg7xH4YmN+moDGwPn/FvkcFfwnj5MH7Y7JSzg4gE1A8/hJv/UI1gantuuP7Z9JLZ8ppTfuHINVA9i1f+4HwciP1CxaKqDdOnj4HVibAVivBSO2l+8CzMpRKYC2sGTN+harnhGMuLKsCoy6OVIAzVQ6gwLWUC7zd9cCmjvloKcz9i1QW5jpx1dwm0wtAXwV0NzoYYY/tB9YrYOFsVC06flcc12GYsRfFNB6TvwXwsPlANZwHtQa5Kr1626JVlRAm/Byng3+vKa1Di7AGsJPtWbrdtxbImhs2oauIofs0FqE2mOoT61GND1IqD4imwJ7FjFkAHDTRl6+IMvbqJdqzQ69Dwx1CVQCml3IvjLwT6hzqV9JTWwFNJ6QVZ7nozRe8voMfBQtBbR4IdOxZtUZqKgBTAEGHSuZQGZF1GpEF7xcWlKDXD4zgcxKOoNaz3wasVpUP22ZMmgxQgbopTPuJwQJYtEEMq10xmoijA1xXHlqoMUKmU4AUONUtZiiDfF3qJRAixkypfEy53RZ7EL00zKBzLs1e5y5HIpFcwRZxRAynXTGmrjUUqLhImbQTEP2lRlkOumMfj1zjqhpjjJW0GKHDJjXXNnXHvQWnpr4fdcxgpYCZAXoe0V19nbuQUtzqNhASwGyzppRtIH+PgTq95exgJYKZCXRQozVM6eKmua4jgG0VCDTsWZPMNOIGVSaIxPISLoHLZ3RwFwPP7Xr1kvbUCaQzdYC9L2i1HRG8H5aJpCRlswFEYrK8Fio+bQ8NNBMQrYPADJf6YxL8B6IH+hgQDMN2Q34ixoAVLC3UWbu8rmGh11hGSPIDswh853OOKc5aQ6TwYh10FKETGe3+ZPl+c1Jc6x9PetMIJskandGg/H2bF01E5dCG8GIFdBShSzXSGe4Cm6mWLWVz4d45QGyTi8IQ7lGOqN2NMYdLu9VeITnXftXniArEL9cpmrqkWBk7fthZB4gS0Fz27N1dbgAm7cAYCpoAhn9pfuwILszvjCL89Eygcy4Vp4syIZbADAGmkCmF01XHn93H/DKYTAyG7RcINPSk+ff3wdry+nBDEFrwL+wzVm+b87LGY1ldOmsBDaydLo7TEDWTxspj2OZHAwIbHRR+9V0pRiNZTJoAhtdC9BPFNLR8sxY7riDJrDRdQf3XazqzN9/B4NKzJQSVBeum4xGh6E4Z+VEaJ7hrplzbMPJAzw3lk4tqtuA7TPC6d74l2hhFNzkssoJY7lFIG1CJpfRAqdbeBcBgNaAXsZxlZOcsinYa2Awt/HRNGyhJIephencQWCwwLQWc19BCgk007CVgcCm0/dPPTxZNwjgEqSQQTMN220gsFWgNQ/aTjHMPTL0OSTQUoWNatVsphgU4d8Ht1M9Ndhq0A9XsXGfek5cCovQQEsRNqpVs2FJSo0PTHCgpQZbA3oHrWmrRjnr7BAyaKnBRt0TkMPsPk+KRat9PDDTB/GlApvOvoBvMJPuUMTv28UAWkqwVaCf929iCaXehLKJBbSUYFtrzEk38qNYtAae7pfPLH/iTcJ2zxC0GvRCtY5Vy4mg1r4elO0LLUzCdgdGrck9UbfXKY35UP2zbaygmYbtmSFsB9B3P1HroNQj3OuYQUsBtnvQ0x2UjgpKWsNrs6nLaxRjh41aMfiGeWUk6vHtXvd5ur4YNmbYqNfuzO3uCKbs5BO02GGjWrXbGQ5+MGUn36DFDJvO6T1TrNoCtIiz9v1gMo+/O1bYqG3fasIcFHFMu5RBixU2nTro2AYSalpjkzposcJG7e4Y20BCCQQaeCo7cQPNBmyKwZyo8zm3gSQHrZu25vCCuYBmGrYX+D8GoNZ4yQ+GrBnA5Jw0TqCZhG2B0wZl37BR5/LadUDBlZ04g2YDttLjXBqYa/umuANszjjhCJpp2F4AHFvo7j34b4/El90/1E8hwLJTX1fgq6r984sGZMMTEBX+JEZrnPJLOr7U1HTHCrTmzYc2NUHtpq25vMw3x+Px/y/ef/iEyPRjhgWzDd4/RJ/xsZ1DQQD87bn/+fvXTwHNoFQLG9UamARPZywUbXA6GowFaBniVg16q3W3zP4w5OPpjIWiHacXEbtFA+gH6dmweHm7hLo4p+wdLlQExKLxSjGYtngN3Fx60YBB2Sk10HRSDDbAc3HzXc3tBaQCms5BeqbBK2D/9rsttxeQgo9mIsUQmt6OWXDx0exqlcAcWR6tnxpocyLEULXlOKjUQAPivwmmFtB4qAGT658tBT0CGiOxuNA+FWuWMmhdwfljC10sftuO68CukLb2+PvugBKnTlaFMNMgGwEtnBfVvazFALw8AN+zEdDCXF4r/Om4yAfgcbswjfXynwlPs6PVz61/d8PMv9tyfnhi0fQsSN1bZpVn/64W0NJYZvv+XT4Az7Z/x/5GZwHN3jLb9++KAXim/bst9wcioLlRl0bpKhJqAF7Uy6aAFod/dxDQRC78uzqESQpo4ft3OwFNZNO/W7YQbkKYxF+t3CKRLUllQCSgieLRf80sS5fCDVbiAAAAAElFTkSuQmCC\",progressEmptyUrl:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAAUUlEQVRo3u3aMQ4AEAxAUcRJzGb3v1mt3cQglvcmc/NTA3XMFQUuNCPgVk/nahwchE2D6wnRIBpEg2hANIgG0SAaRAOiQTR8lV+5/avBpuGNDcz6A6oq1CgNAAAAAElFTkSuQmCC\",progressFullUrl:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAAQElEQVRo3u3SMREAMAgAsVIpnTvj3xlogDmR8PfxftaBgSsBpsE0mAbTYBowDabBNJgG04BpMA2mwTSYBkzDXgP/hgGnr4PpeAAAAABJRU5ErkJggg==\"}},handler:function(e,t){if(e.Module){var r=UnityLoader.Progress.Styles[e.Module.splashScreenStyle],n=e.Module.progressLogoUrl?e.Module.resolveBuildUrl(e.Module.progressLogoUrl):r.progressLogoUrl,o=e.Module.progressEmptyUrl?e.Module.resolveBuildUrl(e.Module.progressEmptyUrl):r.progressEmptyUrl,a=e.Module.progressFullUrl?e.Module.resolveBuildUrl(e.Module.progressFullUrl):r.progressFullUrl,i=\"position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);\";e.logo||(e.logo=document.createElement(\"div\"),e.logo.style.cssText=i+\"background: url('\"+n+\"') no-repeat center / contain; width: 154px; height: 130px;\",e.container.appendChild(e.logo)),e.progress||(e.progress=document.createElement(\"div\"),e.progress.style.cssText=i+\" height: 18px; width: 141px; margin-top: 90px;\",e.progress.empty=document.createElement(\"div\"),e.progress.empty.style.cssText=\"background: url('\"+o+\"') no-repeat right / cover; float: right; width: 100%; height: 100%; display: inline-block;\",e.progress.appendChild(e.progress.empty),e.progress.full=document.createElement(\"div\"),e.progress.full.style.cssText=\"background: url('\"+a+\"') no-repeat left / cover; float: left; width: 0%; height: 100%; display: inline-block;\",e.progress.appendChild(e.progress.full),e.container.appendChild(e.progress)),e.progress.full.style.width=100*t+\"%\",e.progress.empty.style.width=100*(1-t)+\"%\",1==t&&(e.logo.style.display=e.progress.style.display=\"none\")}},update:function(e,t,r){if(r&&!r.lengthComputable){var n=r.target.responseURL,o=n.split(\"/Build/\")[1];var a=window.config.cachedDecompressedFileSizes?window.config.cachedDecompressedFileSizes[o]:0;if(navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1){a*=.52}}\nvar i=e.buildDownloadProgress[t];i||(i=e.buildDownloadProgress[t]={started:!1,finished:!1,lengthComputable:!1,total:0,loaded:0}),\"object\"!=typeof r||\"progress\"!=r.type&&\"load\"!=r.type||(i.started||(i.started=!0,i.lengthComputable=r.lengthComputable,i.total=0==r.total?a||0:r.total),i.loaded=r.loaded,\"load\"==r.type&&(i.finished=!0));var s=0,d=0,l=0,u=0;for(var t in e.buildDownloadProgress){if(i=e.buildDownloadProgress[t],!i.started)return 0;l++,s+=i.loaded,d+=i.total,u++}\nvar f=l?(l-0-(d?u*(d-s)/d:0))/l:0;f=Math.min(1,f),i.finished&&0==i.loaded&&(f=1),e.gameInstance.onProgress(e.gameInstance,f)}},SystemInfo:function(){var e,t,r,o=navigator.appVersion,a=navigator.userAgent,i=navigator.appName,s=navigator.appVersion,d=parseInt(navigator.appVersion,10);-1!=(t=a.indexOf(\"Opera\"))?(i=\"Opera\",s=a.substring(t+6),-1!=(t=a.indexOf(\"Version\"))&&(s=a.substring(t+8))):-1!=(t=a.indexOf(\"MSIE\"))?(i=\"Microsoft Internet Explorer\",s=a.substring(t+5)):-1!=(t=a.indexOf(\"Edge\"))?(i=\"Edge\",s=a.substring(t+5)):-1!=(t=a.indexOf(\"Chrome\"))?(i=\"Chrome\",s=a.substring(t+7)):-1!=(t=a.indexOf(\"Safari\"))?(i=\"Safari\",s=a.substring(t+7),-1!=(t=a.indexOf(\"Version\"))&&(s=a.substring(t+8))):-1!=(t=a.indexOf(\"Firefox\"))?(i=\"Firefox\",s=a.substring(t+8)):-1!=a.indexOf(\"Trident/\")?(i=\"Microsoft Internet Explorer\",s=a.substring(a.indexOf(\"rv:\")+3)):(e=a.lastIndexOf(\" \")+1)<(t=a.lastIndexOf(\"/\"))&&(i=a.substring(e,t),s=a.substring(t+1),i.toLowerCase()==i.toUpperCase()&&(i=navigator.appName)),-1!=(r=s.indexOf(\";\"))&&(s=s.substring(0,r)),-1!=(r=s.indexOf(\" \"))&&(s=s.substring(0,r)),-1!=(r=s.indexOf(\")\"))&&(s=s.substring(0,r)),d=parseInt(\"\"+s,10),isNaN(d)?(s=\"\"+parseFloat(navigator.appVersion),d=parseInt(navigator.appVersion,10)):s=\"\"+parseFloat(s);var l=/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(o),u=\"-\",c=[{s:\"Windows 3.11\",r:/Win16/},{s:\"Windows 95\",r:/(Windows 95|Win95|Windows_95)/},{s:\"Windows ME\",r:/(Win 9x 4.90|Windows ME)/},{s:\"Windows 98\",r:/(Windows 98|Win98)/},{s:\"Windows CE\",r:/Windows CE/},{s:\"Windows 2000\",r:/(Windows NT 5.0|Windows 2000)/},{s:\"Windows XP\",r:/(Windows NT 5.1|Windows XP)/},{s:\"Windows Server 2003\",r:/Windows NT 5.2/},{s:\"Windows Vista\",r:/Windows NT 6.0/},{s:\"Windows 7\",r:/(Windows 7|Windows NT 6.1)/},{s:\"Windows 8.1\",r:/(Windows 8.1|Windows NT 6.3)/},{s:\"Windows 8\",r:/(Windows 8|Windows NT 6.2)/},{s:\"Windows 10\",r:/(Windows 10|Windows NT 10.0)/},{s:\"Windows NT 4.0\",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:\"Windows ME\",r:/Windows ME/},{s:\"Android\",r:/Android/},{s:\"Open BSD\",r:/OpenBSD/},{s:\"Sun OS\",r:/SunOS/},{s:\"Linux\",r:/(Linux|X11)/},{s:\"iOS\",r:/(iPhone|iPad|iPod)/},{s:\"Mac OS X\",r:/Mac OS X/},{s:\"Mac OS\",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:\"QNX\",r:/QNX/},{s:\"UNIX\",r:/UNIX/},{s:\"BeOS\",r:/BeOS/},{s:\"OS/2\",r:/OS\\/2/},{s:\"Search Bot\",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/}];for(var f in c){var h=c[f];if(h.r.test(a)){u=h.s;break}}\nvar p=\"-\";switch(/Windows/.test(u)&&(p=/Windows (.*)/.exec(u)[1],u=\"Windows\"),u){case \"Mac OS X\":p=/Mac OS X (10[\\.\\_\\d]+)/.exec(a)[1];break;case \"Android\":p=/Android ([\\.\\_\\d]+)/.exec(a)[1];break;case \"iOS\":p=/OS (\\d+)_(\\d+)_?(\\d+)?/.exec(o),p=p[1]+\".\"+p[2]+\".\"+(0|p[3])}\nreturn{width:screen.width?screen.width:0,height:screen.height?screen.height:0,browser:i,browserVersion:s,mobile:l,os:u,osVersion:p,gpu:function(){var e=document.createElement(\"canvas\"),t=e.getContext(\"experimental-webgl\");if(t){var r=t.getExtension(\"WEBGL_debug_renderer_info\");if(r)return t.getParameter(r.UNMASKED_RENDERER_WEBGL)}\nreturn \"-\"}(),language:window.navigator.userLanguage||window.navigator.language,hasWebGL:function(){if(!window.WebGLRenderingContext)return 0;var e=document.createElement(\"canvas\"),t=e.getContext(\"webgl2\");return t?2:(t=e.getContext(\"experimental-webgl2\"),t?2:(t=e.getContext(\"webgl\"),t||(t=e.getContext(\"experimental-webgl\"))?1:0))}(),hasCursorLock:function(){var e=document.createElement(\"canvas\");return e.requestPointerLock||e.mozRequestPointerLock||e.webkitRequestPointerLock||e.msRequestPointerLock?1:0}(),hasFullscreen:function(){var e=document.createElement(\"canvas\");return(e.requestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen||e.webkitRequestFullScreen)&&(-1==i.indexOf(\"Safari\")||s>=10.1)?1:0}(),hasWasm:\"object\"==typeof WebAssembly&&\"function\"==typeof WebAssembly.validate&&\"function\"==typeof WebAssembly.compile}}(),compatibilityCheck:function(e,t,r){UnityLoader.SystemInfo.hasWebGL?UnityLoader.SystemInfo.mobile?e.popup(\"Please note that Unity WebGL is not currently supported on mobiles. Press OK if you wish to continue anyway.\",[{text:\"OK\",callback:t}]):-1==[\"Edge\",\"Firefox\",\"Chrome\",\"Safari\"].indexOf(UnityLoader.SystemInfo.browser)?e.popup(\"Please note that your browser is not currently supported for this Unity WebGL content. Press OK if you wish to continue anyway.\",[{text:\"OK\",callback:t}]):t():e.popup(\"Your browser does not support WebGL\",[{text:\"OK\",callback:r}])},Blobs:{},loadCode:function(e,t,r){var n=[].slice.call(UnityLoader.Cryptography.md5(e)).map(function(e){return(\"0\"+e.toString(16)).substr(-2)}).join(\"\"),o=document.createElement(\"script\"),a=URL.createObjectURL(new Blob(['UnityLoader[\"'+n+'\"]=',e],{type:\"text/javascript\"}));UnityLoader.Blobs[a]=r,o.src=a,o.onload=function(){URL.revokeObjectURL(a),t(n)},document.body.appendChild(o)},allocateHeapJob:function(e,t){for(var r=e.TOTAL_STACK||5242880,n=e.TOTAL_MEMORY||(e.buffer?e.buffer.byteLength:268435456),o=65536,a=16777216,i=o;i<n||i<2*r;)i+=i<a?i:a;i!=n&&e.printErr(\"increasing TOTAL_MEMORY to \"+i+\" to be compliant with the asm.js spec (and given that TOTAL_STACK=\"+r+\")\"),n=i,t.parameters.useWasm?(e.wasmMemory=new WebAssembly.Memory({initial:n/o,maximum:n/o}),e.buffer=e.wasmMemory.buffer):e.buffer?e.buffer.byteLength!=n&&(e.printErr(\"provided buffer should be \"+n+\" bytes, but it is \"+e.buffer.byteLength+\", reallocating the buffer\"),e.buffer=new ArrayBuffer(n)):e.buffer=new ArrayBuffer(n),e.TOTAL_MEMORY=e.buffer.byteLength,t.complete()},setupIndexedDBJob:function(e,t){function r(n){r.called||(r.called=!0,e.indexedDB=n,t.complete())}\ntry{var n=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,o=n.open(\"/idbfs-test\");o.onerror=function(e){e.preventDefault(),r()},o.onsuccess=function(){o.result.close(),r(n)},setTimeout(r,1e3)}catch(e){r()}},initWasmCache:function(e,t){e.cacheControl&&-1!=[\"must-revalidate\",\"immutable\"].indexOf(e.cacheControl[t]||e.cacheControl.default)&&(e.wasmCache={update:function(){var e=this;e.cache&&e.download&&e.request&&(e.cache.module&&e.cache.md5==e.download.md5?e.request.wasmInstantiate(e.cache.module).then(function(t){console.log(\"[Unity Cache] WebAssembly module '\"+e.cache.url+\"' successfully loaded from the indexedDB cache\"),e.request.callback(t)}):e.request.wasmInstantiate(e.download.binary).then(function(t){e.cache.module=t.module,e.cache.md5=e.download.md5,UnityLoader.UnityCache.WebAssembly.put(e.cache,function(){console.log(\"[Unity Cache] WebAssembly module '\"+e.cache.url+\"' successfully stored in the indexedDB cache\")},function(t){console.log(\"[Unity Cache] WebAssembly module '\"+e.cache.url+\"' not stored in the indexedDB cache due to the error: \"+t)}),e.request.callback(t.instance)}))}},UnityLoader.UnityCache.WebAssembly.get(e.resolveBuildUrl(e[t]),function(t){e.wasmCache.cache=t,e.wasmCache.update()}))},processWasmCodeJob:function(e,t){e.wasmBinary=UnityLoader.Job.result(e,\"downloadWasmCode\"),e.wasmCache&&(e.wasmCache.download={binary:e.wasmBinary,md5:[].slice.call(UnityLoader.Cryptography.md5(e.wasmBinary)).map(function(e){return(\"0\"+e.toString(16)).substr(-2)}).join(\"\")},e.wasmCache.update()),t.complete()},processWasmFrameworkJob:function(e,t){UnityLoader.loadCode(UnityLoader.Job.result(e,\"downloadWasmFramework\"),function(r){UnityLoader[r](e),t.complete()},{Module:e,url:e.wasmFrameworkUrl})},processAsmCodeJob:function(e,t){var r=UnityLoader.Job.result(e,\"downloadAsmCode\");UnityLoader.loadCode(Math.fround?r:UnityLoader.Utils.optimizeMathFround(r),function(r){e.asm=UnityLoader[r],t.complete()},{Module:e,url:e.asmCodeUrl})},processAsmFrameworkJob:function(e,t){UnityLoader.loadCode(UnityLoader.Job.result(e,\"downloadAsmFramework\"),function(r){UnityLoader[r](e),t.complete()},{Module:e,url:e.asmFrameworkUrl})},processAsmMemoryJob:function(e,t){e.memoryInitializerRequest.status=200,e.memoryInitializerRequest.response=UnityLoader.Job.result(e,\"downloadAsmMemory\"),e.memoryInitializerRequest.callback&&e.memoryInitializerRequest.callback(),t.complete()},processDataJob:function(e,t){var r=UnityLoader.Job.result(e,\"downloadData\"),n=new DataView(r.buffer,r.byteOffset,r.byteLength),o=0,a=\"UnityWebData1.0\\0\";if(!String.fromCharCode.apply(null,r.subarray(o,o+a.length))==a)throw \"unknown data format\";o+=a.length;var i=n.getUint32(o,!0);for(o+=4;o<i;){var s=n.getUint32(o,!0);o+=4;var d=n.getUint32(o,!0);o+=4;var l=n.getUint32(o,!0);o+=4;var u=String.fromCharCode.apply(null,r.subarray(o,o+l));o+=l;for(var c=0,f=u.indexOf(\"/\",c)+1;f>0;c=f,f=u.indexOf(\"/\",c)+1)e.FS_createPath(u.substring(0,c),u.substring(c,f-1),!0,!0);e.FS_createDataFile(u,null,r.subarray(s,s+d),!0,!0,!0)}\ne.removeRunDependency(\"processDataJob\"),t.complete()},downloadJob:function(e,t){var r=t.parameters.objParameters?new UnityLoader.UnityCache.XMLHttpRequest(t.parameters.objParameters):new XMLHttpRequest;r.open(\"GET\",t.parameters.url),r.responseType=\"arraybuffer\",r.onload=function(){UnityLoader.Compression.decompress(new Uint8Array(r.response),function(e){t.complete(e)})},t.parameters.onprogress&&r.addEventListener(\"progress\",t.parameters.onprogress),t.parameters.onload&&r.addEventListener(\"load\",t.parameters.onload),r.send()},scheduleBuildDownloadJob:function(e,t,r){UnityLoader.Progress.update(e,t),UnityLoader.Job.schedule(e,t,[],UnityLoader.downloadJob,{url:e.resolveBuildUrl(e[r]),onprogress:function(r){UnityLoader.Progress.update(e,t,r)},onload:function(r){UnityLoader.Progress.update(e,t,r)},objParameters:e.companyName&&e.productName&&e.cacheControl&&(e.cacheControl[r]||e.cacheControl.default)?{companyName:e.companyName,productName:e.productName,cacheControl:e.cacheControl[r]||e.cacheControl.default}:null})},loadModule:function(e){if(e.useWasm=e.wasmCodeUrl&&UnityLoader.SystemInfo.hasWasm,e.useWasm)UnityLoader.initWasmCache(e,\"wasmCodeUrl\"),UnityLoader.scheduleBuildDownloadJob(e,\"downloadWasmCode\",\"wasmCodeUrl\"),UnityLoader.Job.schedule(e,\"processWasmCode\",[\"downloadWasmCode\"],UnityLoader.processWasmCodeJob),UnityLoader.scheduleBuildDownloadJob(e,\"downloadWasmFramework\",\"wasmFrameworkUrl\"),UnityLoader.Job.schedule(e,\"processWasmFramework\",[\"downloadWasmFramework\",\"processWasmCode\",\"setupIndexedDB\"],UnityLoader.processWasmFrameworkJob);else{if(!e.asmCodeUrl)throw \"WebAssembly support is not detected in this browser.\";UnityLoader.scheduleBuildDownloadJob(e,\"downloadAsmCode\",\"asmCodeUrl\"),UnityLoader.Job.schedule(e,\"processAsmCode\",[\"downloadAsmCode\"],UnityLoader.processAsmCodeJob),UnityLoader.scheduleBuildDownloadJob(e,\"downloadAsmMemory\",\"asmMemoryUrl\"),UnityLoader.Job.schedule(e,\"processAsmMemory\",[\"downloadAsmMemory\"],UnityLoader.processAsmMemoryJob),e.memoryInitializerRequest={addEventListener:function(t,r){e.memoryInitializerRequest.callback=r}},e.asmLibraryUrl&&(e.dynamicLibraries=[e.asmLibraryUrl].map(e.resolveBuildUrl)),UnityLoader.scheduleBuildDownloadJob(e,\"downloadAsmFramework\",\"asmFrameworkUrl\"),UnityLoader.Job.schedule(e,\"processAsmFramework\",[\"downloadAsmFramework\",\"processAsmCode\",\"setupIndexedDB\"],UnityLoader.processAsmFrameworkJob)}\nUnityLoader.scheduleBuildDownloadJob(e,\"downloadData\",\"dataUrl\"),UnityLoader.Job.schedule(e,\"setupIndexedDB\",[],UnityLoader.setupIndexedDBJob),e.preRun.push(function(){e.addRunDependency(\"processDataJob\"),UnityLoader.Job.schedule(e,\"processData\",[\"downloadData\"],UnityLoader.processDataJob)})},instantiate:function(e,t,r){function n(e,r){if(\"string\"==typeof e&&!(e=document.getElementById(e)))return!1;e.innerHTML=\"\",e.style.border=e.style.margin=e.style.padding=0,\"static\"==getComputedStyle(e).getPropertyValue(\"position\")&&(e.style.position=\"relative\"),e.style.width=r.width||e.style.width,e.style.height=r.height||e.style.height,r.container=e;var n=r.Module;return n.canvas=document.createElement(\"canvas\"),n.canvas.style.width=\"100%\",n.canvas.style.height=\"100%\",n.canvas.addEventListener(\"contextmenu\",function(e){e.preventDefault()}),n.canvas.id=\"#canvas\",e.appendChild(n.canvas),r.compatibilityCheck(r,function(){var t=new XMLHttpRequest;t.open(\"GET\",r.url,!0),t.responseType=\"text\",t.onerror=function(){n.print(\"Could not download \"+r.url),0==document.URL.indexOf(\"file:\")&&alert(\"It seems your browser does not support running Unity WebGL content from file:// urls. Please upload it to an http server, or try a different browser.\")},t.onload=function(){var o=JSON.parse(t.responseText);for(var a in o)void 0===n[a]&&(n[a]=o[a]);for(var i=!1,s=0;s<n.graphicsAPI.length;s++){var d=n.graphicsAPI[s];\"WebGL 2.0\"==d&&2==UnityLoader.SystemInfo.hasWebGL?i=!0:\"WebGL 1.0\"==d&&UnityLoader.SystemInfo.hasWebGL>=1?i=!0:n.print(\"Warning: Unsupported graphics API \"+d)}\nreturn i?(e.style.background=n.backgroundUrl?\"center/cover url('\"+n.resolveBuildUrl(n.backgroundUrl)+\"')\":n.backgroundColor?\" \"+n.backgroundColor:\"\",r.onProgress(r,0),void UnityLoader.loadModule(n)):void r.popup(\"Your browser does not support any of the required graphics API for this content: \"+n.graphicsAPI,[{text:\"OK\"}])},t.send()},function(){n.printErr(\"Instantiation of the '\"+t+\"' terminated due to the failed compatibility check.\")}),!0}\nfunction o(e){return o.link=o.link||document.createElement(\"a\"),o.link.href=e,o.link.href}\nvar a={url:t,onProgress:UnityLoader.Progress.handler,compatibilityCheck:UnityLoader.compatibilityCheck,Module:{graphicsAPI:[\"WebGL 2.0\",\"WebGL 1.0\"],onAbort:function(e){throw void 0!==e?(this.print(e),this.printErr(e),e=JSON.stringify(e)):e=\"\",\"abort(\"+e+\") at \"+this.stackTrace()},preRun:[],postRun:[],print:function(e){console.log(e)},printErr:function(e){console.error(e)},Jobs:{},buildDownloadProgress:{},resolveBuildUrl:function(e){var url=e.match(/(http|https|ftp|file):\\/\\//)?e:t.substring(0,t.lastIndexOf(\"/\")+1)+e;return window.config&&void 0!=window.config.cacheVersion&&void 0!=window.config.gameSlug&&(url=url.replace(\"Build/\",\"https://game-cdn.poki.com/\"+window.config.gameSlug+\"/v\"+window.config.cacheVersion+\"/Build/\")),url},streamingAssetsUrl:function(){return o(this.resolveBuildUrl(\"../StreamingAssets\"))},wasmRequest:function(e,t){this.wasmCache?(this.wasmCache.request={wasmInstantiate:e,callback:t},this.wasmCache.update()):e(this.wasmBinary).then(function(e){t(e.instance)})}},SetFullscreen:function(){if(a.Module.SetFullscreen)return a.Module.SetFullscreen.apply(a.Module,arguments)},SendMessage:function(){if(a.Module.SendMessage)return a.Module.SendMessage.apply(a.Module,arguments)}};for(var i in a.Module.gameInstance=a,a.popup=function(e,t){return UnityLoader.Error.popup(a,e,t)},a.Module.postRun.push(function(){a.onProgress(a,1)}),r)\nif(\"Module\"==i)\nfor(var s in r[i])a.Module[s]=r[i][s];else a[i]=r[i];return n(e,a)||document.addEventListener(\"DOMContentLoaded\",function(){n(e,a)}),a},Utils:{assert:function(e,t){e||abort(\"Assertion failed: \"+t)},optimizeMathFround:function(e,t){console.log(\"optimizing out Math.fround calls\");for(var r={LOOKING_FOR_MODULE:0,SCANNING_MODULE_VARIABLES:1,SCANNING_MODULE_FUNCTIONS:2},n=[\"EMSCRIPTEN_START_ASM\",\"EMSCRIPTEN_START_FUNCS\",\"EMSCRIPTEN_END_FUNCS\"],a=\"global.Math.fround;\",i=0,s=t?r.LOOKING_FOR_MODULE:r.SCANNING_MODULE_VARIABLES,d=0,l=0;s<=r.SCANNING_MODULE_FUNCTIONS&&i<e.length;i++)\nif(47==e[i]&&47==e[i+1]&&32==e[i+2]&&String.fromCharCode.apply(null,e.subarray(i+3,i+3+n[s].length))===n[s])s++;else if(s!=r.SCANNING_MODULE_VARIABLES||l||61!=e[i]||String.fromCharCode.apply(null,e.subarray(i+1,i+1+a.length))!==a){if(l&&40==e[i]){for(var u=0;u<l&&e[i-1-u]==e[d-u];)u++;if(u==l){var c=e[i-1-u];if(c<36||36<c&&c<48||57<c&&c<65||90<c&&c<95||95<c&&c<97||122<c)\nfor(;u;u--)e[i-u]=32}}}else{for(d=i-1;32!=e[d-l];)l++;l&&\"var\"===String.fromCharCode.apply(null,e.subarray(d-l-\"var\".length,d-l))||(d=l=0)}\nreturn e}},UnityCache:function(){function e(e){console.log(\"[UnityCache] \"+e)}\nfunction t(e){return t.link=t.link||document.createElement(\"a\"),t.link.href=e,t.link.href}\nfunction r(e){var t=window.location.href.match(/^[a-z]+:\\/\\/[^\\/]+/);return!t||e.lastIndexOf(t[0],0)}\nfunction n(){function t(t){if(void 0===n.database)\nfor(n.database=t,n.database||e(\"indexedDB database could not be opened\");n.queue.length;){var r=n.queue.shift();n.database?n.execute.apply(n,r):\"function\"==typeof r.onerror&&r.onerror(new Error(\"operation cancelled\"))}}\nfunction r(){var e=o.open(i.name,i.version);e.onupgradeneeded=function(e){var t=e.target.result;t.objectStoreNames.contains(d.name)||t.createObjectStore(d.name)},e.onsuccess=function(e){t(e.target.result)},e.onerror=function(){t(null)}}\nvar n=this;n.queue=[];try{var o=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,a=o.open(i.name);a.onupgradeneeded=function(e){var t=e.target.result.createObjectStore(s.name,{keyPath:\"url\"});[\"version\",\"company\",\"product\",\"updated\",\"revalidated\",\"accessed\"].forEach(function(e){t.createIndex(e,e)})},a.onsuccess=function(e){var n=e.target.result;n.version<i.version?(n.close(),r()):t(n)},a.onerror=function(){t(null)},setTimeout(a.onerror,1e3)}catch(e){t(null)}}\nfunction o(e,t,r,n,o){var a={url:e,version:s.version,company:t,product:r,updated:n,revalidated:n,accessed:n,responseHeaders:{},xhr:{}};return o&&([\"Last-Modified\",\"ETag\"].forEach(function(e){a.responseHeaders[e]=o.getResponseHeader(e)}),[\"responseURL\",\"status\",\"statusText\",\"response\"].forEach(function(e){a.xhr[e]=o[e]})),a}\nfunction a(t){this.cache={enabled:!1},t&&(this.cache.control=t.cacheControl,this.cache.company=t.companyName,this.cache.product=t.productName),this.xhr=new XMLHttpRequest(t),this.xhr.addEventListener(\"load\",function(){var t=this.xhr,r=this.cache;r.enabled&&!r.revalidated&&(304==t.status?(r.result.revalidated=r.result.accessed,r.revalidated=!0,l.execute(s.name,\"put\",[r.result]),e(\"'\"+r.result.url+\"' successfully revalidated and served from the indexedDB cache\")):200==t.status?(r.result=o(r.result.url,r.company,r.product,r.result.accessed,t),r.revalidated=!0,l.execute(s.name,\"put\",[r.result],function(t){e(\"'\"+r.result.url+\"' successfully downloaded and stored in the indexedDB cache\")},function(t){e(\"'\"+r.result.url+\"' successfully downloaded but not stored in the indexedDB cache due to the error: \"+t)})):e(\"'\"+r.result.url+\"' request failed with status: \"+t.status+\" \"+t.statusText))}.bind(this))}\nvar i={name:\"UnityCache\",version:2},s={name:\"XMLHttpRequest\",version:1},d={name:\"WebAssembly\",version:1};n.prototype.execute=function(e,t,r,n,o){if(this.database)try{var a=this.database.transaction([e],-1!=[\"put\",\"delete\",\"clear\"].indexOf(t)?\"readwrite\":\"readonly\").objectStore(e);\"openKeyCursor\"==t&&(a=a.index(r[0]),r=r.slice(1));var i=a[t].apply(a,r);\"function\"==typeof n&&(i.onsuccess=function(e){n(e.target.result)}),i.onerror=o}catch(e){\"function\"==typeof o&&o(e)}else void 0===this.database?this.queue.push(arguments):\"function\"==typeof o&&o(new Error(\"indexedDB access denied\"))};var l=new n;a.prototype.send=function(t){var n=this.xhr,o=this.cache,a=arguments;return o.enabled=o.enabled&&\"arraybuffer\"==n.responseType&&!t,o.enabled?void l.execute(s.name,\"get\",[o.result.url],function(t){if(t&&t.version==s.version)\nif(o.result=t,o.result.accessed=Date.now(),\"immutable\"==o.control)o.revalidated=!0,l.execute(s.name,\"put\",[o.result]),n.dispatchEvent(new Event(\"load\")),e(\"'\"+o.result.url+\"' served from the indexedDB cache without revalidation\");else if(r(o.result.url)&&(o.result.responseHeaders[\"Last-Modified\"]||o.result.responseHeaders.ETag)){var i=new XMLHttpRequest;i.open(\"HEAD\",o.result.url),i.onload=function(){o.revalidated=[\"Last-Modified\",\"ETag\"].every(function(e){return!o.result.responseHeaders[e]||o.result.responseHeaders[e]==i.getResponseHeader(e)}),o.revalidated?(o.result.revalidated=o.result.accessed,l.execute(s.name,\"put\",[o.result]),n.dispatchEvent(new Event(\"load\")),e(\"'\"+o.result.url+\"' successfully revalidated and served from the indexedDB cache\")):n.send.apply(n,a)},i.send()}else o.result.responseHeaders[\"Last-Modified\"]?(n.setRequestHeader(\"If-Modified-Since\",o.result.responseHeaders[\"Last-Modified\"]),n.setRequestHeader(\"Cache-Control\",\"no-cache\")):o.result.responseHeaders.ETag&&(n.setRequestHeader(\"If-None-Match\",o.result.responseHeaders.ETag),n.setRequestHeader(\"Cache-Control\",\"no-cache\")),n.send.apply(n,a);else n.send.apply(n,a)},function(e){n.send.apply(n,a)}):n.send.apply(n,a)},a.prototype.open=function(e,r,n,a,i){return this.cache.result=o(t(r),this.cache.company,this.cache.product,Date.now()),this.cache.enabled=-1!=[\"must-revalidate\",\"immutable\"].indexOf(this.cache.control)&&\"GET\"==e&&this.cache.result.url.match(\"^https?://\")&&(void 0===n||n)&&void 0===a&&void 0===i,this.cache.revalidated=!1,this.xhr.open.apply(this.xhr,arguments)},a.prototype.setRequestHeader=function(e,t){return this.cache.enabled=!1,this.xhr.setRequestHeader.apply(this.xhr,arguments)};var u=new XMLHttpRequest;for(var c in u)a.prototype.hasOwnProperty(c)||function(e){Object.defineProperty(a.prototype,e,\"function\"==typeof u[e]?{value:function(){return this.xhr[e].apply(this.xhr,arguments)}}:{get:function(){return this.cache.revalidated&&this.cache.result.xhr.hasOwnProperty(e)?this.cache.result.xhr[e]:this.xhr[e]},set:function(t){this.xhr[e]=t}})}(c);return{XMLHttpRequest:a,WebAssembly:{get:function(e,r){var n={url:t(e),version:d.version,module:null,md5:null};l.execute(d.name,\"get\",[n.url],function(e){r(e&&e.version==d.version?e:n)},function(){r(n)})},put:function(e,t,r){l.execute(d.name,\"put\",[e,e.url],t,r)}}}}()};"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:07.850Z",
|
|
"time": 194.28500000003623,
|
|
"timings": {
|
|
"blocked": 29.9330000000453,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 40.3550000000734,
|
|
"receive": 123.99699999991753,
|
|
"_blocked_queueing": 15.5170000000453
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [],
|
|
"parent": {
|
|
"description": "Image",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 224
|
|
},
|
|
{
|
|
"functionName": "f",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 21
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 345
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1518
|
|
},
|
|
{
|
|
"functionName": "r",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 6,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 213
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "image",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/screenshots/1-small.jpg",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:40 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "image/jpeg"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "5450"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "h2pri"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"62b5ec1f-154a\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=FzyOSfHT%2BTtCj9%2FnuAGobC0ZyLO2NwoqO9%2Bj5LwSRYhrbp4SWUEOi0pknL%2BctpJZHohyodzbM2le9uyG2CyYe3QCAbOtYUo94%2FjKsZPPDBIJZd1oQrAxXtbfSdsj8Lztx8XG5PQU3TNpAZXNh2LscLEu2Nw%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf284a04826e-IAD"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 5450,
|
|
"mimeType": "image/jpeg",
|
|
"text": "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",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:07.863Z",
|
|
"time": 109.28200000012112,
|
|
"timings": {
|
|
"blocked": 41.112000000042826,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 27.18899999997666,
|
|
"receive": 40.98100000010163,
|
|
"_blocked_queueing": 13.987000000042826
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 127,
|
|
"columnNumber": 1513
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 126,
|
|
"columnNumber": 4
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 127,
|
|
"columnNumber": 60
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 121,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "Y",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 118,
|
|
"columnNumber": 10661
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 127,
|
|
"columnNumber": 895
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 128,
|
|
"columnNumber": 65
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.catch",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "tt",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 127,
|
|
"columnNumber": 855
|
|
},
|
|
{
|
|
"functionName": "t.lazyLoadInit",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 1857
|
|
},
|
|
{
|
|
"functionName": "t.init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 149,
|
|
"columnNumber": 557
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 347
|
|
},
|
|
{
|
|
"functionName": "init",
|
|
"scriptId": "19",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/poki.js",
|
|
"lineNumber": 166,
|
|
"columnNumber": 239
|
|
},
|
|
{
|
|
"functionName": "i",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 41,
|
|
"columnNumber": 361
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 194
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "VeryLow",
|
|
"_resourceType": "ping",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "POST",
|
|
"url": "https://t.poki.iossss/l",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
},
|
|
{
|
|
"name": "Content-Type",
|
|
"value": "text/plain;charset=UTF-8"
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 218,
|
|
"postData": {
|
|
"mimeType": "text/plain;charset=UTF-8",
|
|
"text": "{\"c\":\"sdk-p4d-error\",\"ve\":7,\"d\":[{\"k\":\"error\",\"v\":\"{\\\"body\\\":\\\"{\\\\\\\"href\\\\\\\":\\\\\\\"https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/\\\\\\\"}\\\",\\\"name\\\":\\\"TypeError\\\",\\\"message\\\":\\\"Failed to fetch\\\"}\"}]}"
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_BLOCKED_BY_CLIENT"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:46:08.000Z",
|
|
"time": 100.59999999998581,
|
|
"timings": {
|
|
"blocked": 100.59999999998581,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [],
|
|
"parent": {
|
|
"description": "Image",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 224
|
|
},
|
|
{
|
|
"functionName": "f",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 21
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1014
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1518
|
|
},
|
|
{
|
|
"functionName": "r",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 6,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 213
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "image",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/screenshots/1.jpg",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:40 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "image/jpeg"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "218172"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "h2pri"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"62b5ec1f-3543c\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38142"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=V45fh1TEjtxGxuLKrgVy6kLqP2Xd0ZeoeW%2BKScnAtxmeg0VvXUPIRtEotO2FcbhRaY%2FUKviNLh6QGwbki61fNsMZ%2B1JjLpJ935i2Xzvd8Yy4RYrYhs0IkabCpLZQ4MDRJmWF86tpLMwXMWH%2BiIYqit5FUkg%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf298b70826e-IAD"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 218172,
|
|
"mimeType": "image/jpeg",
|
|
"text": "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",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:08.020Z",
|
|
"time": 87.65500000004067,
|
|
"timings": {
|
|
"blocked": 48.277000000091675,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 12.51000000002682,
|
|
"receive": 26.867999999922176,
|
|
"_blocked_queueing": 41.07500000009168
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 196,
|
|
"columnNumber": 328
|
|
},
|
|
{
|
|
"functionName": "compatibilityCheck",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1330
|
|
},
|
|
{
|
|
"functionName": "n",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 195,
|
|
"columnNumber": 888
|
|
},
|
|
{
|
|
"functionName": "instantiate",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 200,
|
|
"columnNumber": 60
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 167
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 96
|
|
},
|
|
{
|
|
"functionName": "c",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 288
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 48,
|
|
"columnNumber": 0
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "xhr",
|
|
"cache": {},
|
|
"connection": "12214",
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/build.json",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": ":method",
|
|
"value": "GET"
|
|
},
|
|
{
|
|
"name": ":authority",
|
|
"value": "watchdocumentaries.com"
|
|
},
|
|
{
|
|
"name": ":scheme",
|
|
"value": "https"
|
|
},
|
|
{
|
|
"name": ":path",
|
|
"value": "/wp-content/uploads/games/rocket-league/build.json"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "user-agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
},
|
|
{
|
|
"name": "accept",
|
|
"value": "*/*"
|
|
},
|
|
{
|
|
"name": "sec-fetch-site",
|
|
"value": "same-origin"
|
|
},
|
|
{
|
|
"name": "sec-fetch-mode",
|
|
"value": "cors"
|
|
},
|
|
{
|
|
"name": "sec-fetch-dest",
|
|
"value": "empty"
|
|
},
|
|
{
|
|
"name": "referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "accept-encoding",
|
|
"value": "gzip, deflate, br"
|
|
},
|
|
{
|
|
"name": "accept-language",
|
|
"value": "en-US,en;q=0.9"
|
|
},
|
|
{
|
|
"name": "cookie",
|
|
"value": "pvc_visits[0]=1676673822b1190a1676673827b273a1676673879b6224"
|
|
},
|
|
{
|
|
"name": "if-none-match",
|
|
"value": "W/\"199-5e2346c3ba8e8-gzip\""
|
|
},
|
|
{
|
|
"name": "if-modified-since",
|
|
"value": "Fri, 24 Jun 2022 16:54:25 GMT"
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [
|
|
{
|
|
"name": "pvc_visits[0]",
|
|
"value": "1676673822b1190a1676673827b273a1676673879b6224",
|
|
"path": "/",
|
|
"domain": "watchdocumentaries.com",
|
|
"expires": "2023-02-17T22:44:38.945Z",
|
|
"httpOnly": true,
|
|
"secure": true,
|
|
"sameSite": "Lax"
|
|
}
|
|
],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 304,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:46:09 GMT"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9d1525cad8248-IAD"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "43620"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "max-age=0"
|
|
},
|
|
{
|
|
"name": "expires",
|
|
"value": "Thu, 16 Feb 2023 09:32:46 GMT"
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:54:25 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "cf-apo-via",
|
|
"value": "tcache"
|
|
},
|
|
{
|
|
"name": "x-cache",
|
|
"value": "MISS"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=wjyfzSOlm1TSjJrgVrMLExl5BDK53XJf30lphYG1f5xJehQxfw4P8DcnS0%2FBL9kyonzxUaIK6o64fRG5CSmvmLjvMzuGWGbQhQIoGDNKkmwbwF0w%2FaeqYebjlc4JMkwIzbfSRbCupJ7PdD8y5%2F98sklHJAw%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "W/\"199-5e2346c3ba8e8-gzip\""
|
|
},
|
|
{
|
|
"name": "content-encoding",
|
|
"value": "br"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 409,
|
|
"mimeType": "application/json",
|
|
"text": "{\n\"companyName\": \"Destruction Crew\",\n\"productName\": \"Rocket Soccer\",\n\"dataUrl\": \"RSD 1.1.0rc4.data.unityweb\",\n\"wasmCodeUrl\": \"RSD 1.1.0rc4.wasm.code.unityweb\",\n\"wasmFrameworkUrl\": \"RSD 1.1.0rc4.wasm.framework.unityweb\",\n\"TOTAL_MEMORY\": 268435456,\n\"graphicsAPI\": [\"WebGL 2.0\", \"WebGL 1.0\"],\n\"webglContextAttributes\": {\"preserveDrawingBuffer\": false},\n\"splashScreenStyle\": \"Dark\",\n\"backgroundColor\": \"#231F20\"\n}"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 502,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:08.353Z",
|
|
"time": 144.13999999987374,
|
|
"timings": {
|
|
"blocked": 14.580000000006738,
|
|
"dns": 0.35799999999999965,
|
|
"ssl": 42.86000000000001,
|
|
"connect": 72.084,
|
|
"send": 0.6839999999999975,
|
|
"wait": 46.75999999996252,
|
|
"receive": 9.673999999904481,
|
|
"_blocked_queueing": 7.2920000000067375
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [],
|
|
"parent": {
|
|
"description": "Image",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1155
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1450
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1518
|
|
},
|
|
{
|
|
"functionName": "r",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 6,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 213
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "image",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/screenshots/2-small.jpg",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:41 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "image/jpeg"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "2424"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "h2pri"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"62b5ec1f-978\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=jHQSlo2%2F%2FLGDO2ODi1OMHqjEJ6kxXNs17nOaAiqOX8AwWPghxyBvROWrKOB4ACkB2BNe3rtoFc5GvcbcqirjiV6wXCWXs1ql6JE64zleyEc%2BBC6Bu1OL%2FfcmLralAV7%2F1MYA7wOwoXqXE8Dxi65C6Fe8Mv8%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf2d8854826e-IAD"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 2424,
|
|
"mimeType": "image/jpeg",
|
|
"text": "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",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:08.663Z",
|
|
"time": 68.56900000002497,
|
|
"timings": {
|
|
"blocked": 41.698000000092904,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0.5720000000512364,
|
|
"receive": 26.298999999880834,
|
|
"_blocked_queueing": 19.9560000000929
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [],
|
|
"parent": {
|
|
"description": "Image",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1155
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1450
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1518
|
|
},
|
|
{
|
|
"functionName": "r",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 6,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 213
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "image",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/screenshots/3-small.jpg",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:41 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "image/jpeg"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "2372"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "h2pri"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"62b5ec1f-944\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=JOugem2i%2Bzsi%2FXQsSZvD3SWPqiVzDl8Buqyu2ti7gOxLw2ufYZnmXWT%2FGvADzgPUCA36voRjfzhi0%2B179fHkplap%2FSOYNF3xmoilZi8QZr8IlNGGWphhz%2FOhttf1ktAW7dwCktCf%2B7CoPY4B1HYzprF5Apc%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf2e593d826e-IAD"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 2372,
|
|
"mimeType": "image/jpeg",
|
|
"text": "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",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:08.670Z",
|
|
"time": 104.49500000004264,
|
|
"timings": {
|
|
"blocked": 51.88599999996116,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0.5249999999315769,
|
|
"receive": 52.0840000001499,
|
|
"_blocked_queueing": 29.10399999996116
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [],
|
|
"parent": {
|
|
"description": "Image",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1155
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1450
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1518
|
|
},
|
|
{
|
|
"functionName": "r",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 6,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 213
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "image",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/screenshots/4-small.jpg",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:41 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "image/jpeg"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "2336"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "h2pri"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"62b5ec1f-920\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=IW4P61zhnTZnenl3udOQErgE5Ek2E1Dvlo5%2Bc7c10YO%2FB9PzjCI3DshMlsHjbM78fnvyLTk9mJ8hjGj%2F8zO8OfD7mWgwp47ClVD1KOwQMTJcWhrOmyaizzEgb51%2BIc%2FSdesJJwFgcJYqbR0gRMJ7bLuC%2FCE%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf2e493c826e-IAD"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 2336,
|
|
"mimeType": "image/jpeg",
|
|
"text": "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",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:08.679Z",
|
|
"time": 114.0100000000075,
|
|
"timings": {
|
|
"blocked": 55.20799999993437,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0.5659999999941192,
|
|
"receive": 58.236000000079,
|
|
"_blocked_queueing": 21.90999999993437
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [],
|
|
"parent": {
|
|
"description": "Image",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 224
|
|
},
|
|
{
|
|
"functionName": "f",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 21
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 10,
|
|
"columnNumber": 29
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "c",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 10,
|
|
"columnNumber": 541
|
|
},
|
|
{
|
|
"functionName": "s",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 8,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1455
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1518
|
|
},
|
|
{
|
|
"functionName": "r",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 6,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 213
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "image",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/screenshots/2.jpg",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:41 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "image/jpeg"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "83150"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "h2pri"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"62b5ec1f-144ce\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=lhY233bI%2FgM40JF2o%2FEB6WKroMgifq9n3MwYmrhpZyP3ul1bg4oB%2BsSEUtcQDvQSfkYLStNM1QwAeMR%2FbCsiLpsE35vWAOozxm5Jt9vXFjyzoc%2BS%2BcLKTtkq%2FEZQTuZg3Au29F%2B1D%2FaDiel15zIsx4AKj80%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf2e695a826e-IAD"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 83150,
|
|
"mimeType": "image/jpeg",
|
|
"text": "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",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:08.684Z",
|
|
"time": 162.43000000008578,
|
|
"timings": {
|
|
"blocked": 77.15000000019103,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 49.93299999989319,
|
|
"receive": 35.34700000000157,
|
|
"_blocked_queueing": 36.89300000019102
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "downloadJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 523
|
|
},
|
|
{
|
|
"functionName": "a.callback",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 463
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "schedule",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 1044
|
|
},
|
|
{
|
|
"functionName": "scheduleBuildDownloadJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 621
|
|
},
|
|
{
|
|
"functionName": "loadModule",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 1172
|
|
},
|
|
{
|
|
"functionName": "t.onload",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 196,
|
|
"columnNumber": 184
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 195,
|
|
"columnNumber": 1250
|
|
},
|
|
{
|
|
"functionName": "compatibilityCheck",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1330
|
|
},
|
|
{
|
|
"functionName": "n",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 195,
|
|
"columnNumber": 888
|
|
},
|
|
{
|
|
"functionName": "instantiate",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 200,
|
|
"columnNumber": 60
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 167
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 96
|
|
},
|
|
{
|
|
"functionName": "c",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 288
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 48,
|
|
"columnNumber": 0
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "wasm",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/RSD%201.1.0rc4.wasm.code.unityweb",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:41 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "application/wasm"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf2e594e826e-IAD"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "43531"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "max-age=2592000"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "W/\"19630c6-5e2346a2cfd6c\""
|
|
},
|
|
{
|
|
"name": "expires",
|
|
"value": "Sat, 18 Mar 2023 09:35:37 GMT"
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "cf-apo-via",
|
|
"value": "tcache"
|
|
},
|
|
{
|
|
"name": "x-cache",
|
|
"value": "MISS"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=esMkzMHhDtlP2PVlY4T0I3P%2FxE%2BVSn9Jpp2LGM1iPnnEy5CzWXIzKsKrpDSR2YFubHOYzdTXE15APbUDj4SVXvEc%2BB2pSaXr1ZHd1zGrykzVEWorJXU9WWxXuaMrj%2BT94ZqHnFEbivV57aq1AQTR%2BVudtJ0%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "content-encoding",
|
|
"value": "br"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 26620102,
|
|
"mimeType": "application/wasm"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:08.840Z",
|
|
"time": 3297.975999999835,
|
|
"timings": {
|
|
"blocked": 70.99699999981632,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 10.283999999946246,
|
|
"receive": 3216.6950000000725,
|
|
"_blocked_queueing": 45.776999999816326
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "downloadJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 523
|
|
},
|
|
{
|
|
"functionName": "a.callback",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 463
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "schedule",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 1044
|
|
},
|
|
{
|
|
"functionName": "scheduleBuildDownloadJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 621
|
|
},
|
|
{
|
|
"functionName": "loadModule",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 1343
|
|
},
|
|
{
|
|
"functionName": "t.onload",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 196,
|
|
"columnNumber": 184
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 195,
|
|
"columnNumber": 1250
|
|
},
|
|
{
|
|
"functionName": "compatibilityCheck",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1330
|
|
},
|
|
{
|
|
"functionName": "n",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 195,
|
|
"columnNumber": 888
|
|
},
|
|
{
|
|
"functionName": "instantiate",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 200,
|
|
"columnNumber": 60
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 167
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 96
|
|
},
|
|
{
|
|
"functionName": "c",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 288
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 48,
|
|
"columnNumber": 0
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "wasm",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/RSD%201.1.0rc4.wasm.framework.unityweb",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:41 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "application/wasm"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf2e6955826e-IAD"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "max-age=2592000"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "W/\"cafd5-5e2346a2da94b\""
|
|
},
|
|
{
|
|
"name": "expires",
|
|
"value": "Sat, 18 Mar 2023 07:15:33 GMT"
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "cf-apo-via",
|
|
"value": "tcache"
|
|
},
|
|
{
|
|
"name": "x-cache",
|
|
"value": "MISS"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=WtAYLCxh%2BrEzjyK8grWHKVRlnFoudwVvz1p6hKseTpHEji8%2F4m4vWrsfy70U8pBjktlA%2FopquthlUkLa10eP5n6ZCUpGtUq3QWJHb6fCvlEXaSIsqXX5kRN5uRwTGPFZY54ZDweWlqql%2BRX4dnOkDgKjMMM%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "content-encoding",
|
|
"value": "br"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 831445,
|
|
"mimeType": "application/wasm",
|
|
"text": "VW5pdHlMb2FkZXJbIjc5NDc3NTI1ZWVkNzAxYTdmYTJjYzJhZWM0NmFmYjc2Il0gPSAoZnVuY3Rpb24oTW9kdWxlKSB7CiAgICB2YXIgTW9kdWxlID0gdHlwZW9mIE1vZHVsZSAhPT0gInVuZGVmaW5lZCIgPyBNb2R1bGUgOiB7fTsKICAgIE1vZHVsZVsicHJlUnVuIl0ucHVzaCgoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHVuaXR5RmlsZVN5c3RlbUluaXQgPSBNb2R1bGVbInVuaXR5RmlsZVN5c3RlbUluaXQiXSB8fCAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghTW9kdWxlLmluZGV4ZWREQikgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkluZGV4ZWREQiBpcyBub3QgYXZhaWxhYmxlLiBEYXRhIHdpbGwgbm90IHBlcnNpc3QgaW4gY2FjaGUgYW5kIFBsYXllclByZWZzIHdpbGwgbm90IGJlIHNhdmVkLiIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRlMubWtkaXIoIi9pZGJmcyIpOwogICAgICAgICAgICBGUy5tb3VudChJREJGUywge30sICIvaWRiZnMiKTsKICAgICAgICAgICAgTW9kdWxlLmFkZFJ1bkRlcGVuZGVuY3koIkpTX0ZpbGVTeXN0ZW1fTW91bnQiKTsKICAgICAgICAgICAgRlMuc3luY2ZzKHRydWUsIChmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgIE1vZHVsZS5yZW1vdmVSdW5EZXBlbmRlbmN5KCJKU19GaWxlU3lzdGVtX01vdW50IikKICAgICAgICAgICAgfSkpCiAgICAgICAgfSk7CiAgICAgICAgdW5pdHlGaWxlU3lzdGVtSW5pdCgpCiAgICB9KSk7CiAgICBNb2R1bGVbIlNldEZ1bGxzY3JlZW4iXSA9IChmdW5jdGlvbihmdWxsc2NyZWVuKSB7CiAgICAgICAgaWYgKHR5cGVvZiBydW50aW1lSW5pdGlhbGl6ZWQgPT09ICJ1bmRlZmluZWQiIHx8ICFydW50aW1lSW5pdGlhbGl6ZWQpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIlJ1bnRpbWUgbm90IGluaXRpYWxpemVkIHlldC4iKQogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEpTRXZlbnRzID09PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICBjb25zb2xlLmxvZygiUGxheWVyIG5vdCBsb2FkZWQgeWV0LiIpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIHRtcCA9IEpTRXZlbnRzLmNhblBlcmZvcm1FdmVudEhhbmRsZXJSZXF1ZXN0czsKICAgICAgICAgICAgSlNFdmVudHMuY2FuUGVyZm9ybUV2ZW50SGFuZGxlclJlcXVlc3RzID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIE1vZHVsZS5jY2FsbCgiU2V0RnVsbHNjcmVlbiIsIG51bGwsIFsibnVtYmVyIl0sIFtmdWxsc2NyZWVuXSk7CiAgICAgICAgICAgIEpTRXZlbnRzLmNhblBlcmZvcm1FdmVudEhhbmRsZXJSZXF1ZXN0cyA9IHRtcAogICAgICAgIH0KICAgIH0pOwogICAgTW9kdWxlWyJkZW1hbmdsZSJdID0gZGVtYW5nbGUgfHwgKGZ1bmN0aW9uKHN5bWJvbCkgewogICAgICAgIHJldHVybiBzeW1ib2wKICAgIH0pOwogICAgdmFyIE1lZGlhRGV2aWNlcyA9IFtdOwogICAgTW9kdWxlWyJwcmVSdW4iXS5wdXNoKChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgZW51bWVyYXRlTWVkaWFEZXZpY2VzID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgZ2V0TWVkaWEgPSBuYXZpZ2F0b3IuZ2V0VXNlck1lZGlhIHx8IG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEgfHwgbmF2aWdhdG9yLm1vekdldFVzZXJNZWRpYSB8fCBuYXZpZ2F0b3IubXNHZXRVc2VyTWVkaWE7CiAgICAgICAgICAgIGlmICghZ2V0TWVkaWEpIHJldHVybjsKCiAgICAgICAgICAgIGZ1bmN0aW9uIGFkZERldmljZShsYWJlbCkgewogICAgICAgICAgICAgICAgbGFiZWwgPSBsYWJlbCA/IGxhYmVsIDogImRldmljZSAjIiArIE1lZGlhRGV2aWNlcy5sZW5ndGg7CiAgICAgICAgICAgICAgICB2YXIgZGV2aWNlID0gewogICAgICAgICAgICAgICAgICAgIGRldmljZU5hbWU6IGxhYmVsLAogICAgICAgICAgICAgICAgICAgIHJlZkNvdW50OiAwLAogICAgICAgICAgICAgICAgICAgIHZpZGVvOiBudWxsCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgTWVkaWFEZXZpY2VzLnB1c2goZGV2aWNlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyB8fCAhbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKSB7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIE1lZGlhU3RyZWFtVHJhY2sgPT0gInVuZGVmaW5lZCIgfHwgdHlwZW9mIE1lZGlhU3RyZWFtVHJhY2suZ2V0U291cmNlcyA9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJNZWRpYSBEZXZpY2VzIGNhbm5vdCBiZSBlbnVtZXJhdGVkIG9uIHRoaXMgYnJvd3Nlci4iKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBnb3RTb3VyY2VzKHNvdXJjZUluZm9zKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgIT09IHNvdXJjZUluZm9zLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VJbmZvID0gc291cmNlSW5mb3NbaV07CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VJbmZvLmtpbmQgPT09ICJ2aWRlbyIpIGFkZERldmljZShzb3VyY2VJbmZvLmxhYmVsKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIE1lZGlhU3RyZWFtVHJhY2suZ2V0U291cmNlcyhnb3RTb3VyY2VzKQogICAgICAgICAgICB9CiAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpLnRoZW4oKGZ1bmN0aW9uKGRldmljZXMpIHsKICAgICAgICAgICAgICAgIGRldmljZXMuZm9yRWFjaCgoZnVuY3Rpb24oZGV2aWNlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRldmljZS5raW5kID09ICJ2aWRlb2lucHV0IikgYWRkRGV2aWNlKGRldmljZS5sYWJlbCkKICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICB9KSkuY2F0Y2goKGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyLm5hbWUgKyAiOiAiICsgZXJyb3IubWVzc2FnZSkKICAgICAgICAgICAgfSkpCiAgICAgICAgfSk7CiAgICAgICAgZW51bWVyYXRlTWVkaWFEZXZpY2VzKCkKICAgIH0pKTsKCiAgICBmdW5jdGlvbiBTZW5kTWVzc2FnZShnYW1lT2JqZWN0LCBmdW5jLCBwYXJhbSkgewogICAgICAgIGlmIChwYXJhbSA9PT0gdW5kZWZpbmVkKSBNb2R1bGUuY2NhbGwoIlNlbmRNZXNzYWdlIiwgbnVsbCwgWyJzdHJpbmciLCAic3RyaW5nIl0sIFtnYW1lT2JqZWN0LCBmdW5jXSk7CiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHBhcmFtID09PSAic3RyaW5nIikgTW9kdWxlLmNjYWxsKCJTZW5kTWVzc2FnZVN0cmluZyIsIG51bGwsIFsic3RyaW5nIiwgInN0cmluZyIsICJzdHJpbmciXSwgW2dhbWVPYmplY3QsIGZ1bmMsIHBhcmFtXSk7CiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHBhcmFtID09PSAibnVtYmVyIikgTW9kdWxlLmNjYWxsKCJTZW5kTWVzc2FnZUZsb2F0IiwgbnVsbCwgWyJzdHJpbmciLCAic3RyaW5nIiwgIm51bWJlciJdLCBbZ2FtZU9iamVjdCwgZnVuYywgcGFyYW1dKTsKICAgICAgICBlbHNlIHRocm93ICIiICsgcGFyYW0gKyAiIGlzIGRvZXMgbm90IGhhdmUgYSB0eXBlIHdoaWNoIGlzIHN1cHBvcnRlZCBieSBTZW5kTWVzc2FnZS4iCiAgICB9CiAgICBNb2R1bGVbIlNlbmRNZXNzYWdlIl0gPSBTZW5kTWVzc2FnZTsKICAgIHZhciBtb2R1bGVPdmVycmlkZXMgPSB7fTsKICAgIHZhciBrZXk7CiAgICBmb3IgKGtleSBpbiBNb2R1bGUpIHsKICAgICAgICBpZiAoTW9kdWxlLmhhc093blByb3BlcnR5KGtleSkpIHsKICAgICAgICAgICAgbW9kdWxlT3ZlcnJpZGVzW2tleV0gPSBNb2R1bGVba2V5XQogICAgICAgIH0KICAgIH0KICAgIE1vZHVsZVsiYXJndW1lbnRzIl0gPSBbXTsKICAgIE1vZHVsZVsidGhpc1Byb2dyYW0iXSA9ICIuL3RoaXMucHJvZ3JhbSI7CiAgICBNb2R1bGVbInF1aXQiXSA9IChmdW5jdGlvbihzdGF0dXMsIHRvVGhyb3cpIHsKICAgICAgICB0aHJvdyB0b1Rocm93CiAgICB9KTsKICAgIE1vZHVsZVsicHJlUnVuIl0gPSBbXTsKICAgIE1vZHVsZVsicG9zdFJ1biJdID0gW107CiAgICB2YXIgRU5WSVJPTk1FTlRfSVNfV0VCID0gZmFsc2U7CiAgICB2YXIgRU5WSVJPTk1FTlRfSVNfV09SS0VSID0gZmFsc2U7CiAgICB2YXIgRU5WSVJPTk1FTlRfSVNfTk9ERSA9IGZhbHNlOwogICAgdmFyIEVOVklST05NRU5UX0lTX1NIRUxMID0gZmFsc2U7CiAgICBpZiAoTW9kdWxlWyJFTlZJUk9OTUVOVCJdKSB7CiAgICAgICAgaWYgKE1vZHVsZVsiRU5WSVJPTk1FTlQiXSA9PT0gIldFQiIpIHsKICAgICAgICAgICAgRU5WSVJPTk1FTlRfSVNfV0VCID0gdHJ1ZQogICAgICAgIH0gZWxzZSBpZiAoTW9kdWxlWyJFTlZJUk9OTUVOVCJdID09PSAiV09SS0VSIikgewogICAgICAgICAgICBFTlZJUk9OTUVOVF9JU19XT1JLRVIgPSB0cnVlCiAgICAgICAgfSBlbHNlIGlmIChNb2R1bGVbIkVOVklST05NRU5UIl0gPT09ICJOT0RFIikgewogICAgICAgICAgICBFTlZJUk9OTUVOVF9JU19OT0RFID0gdHJ1ZQogICAgICAgIH0gZWxzZSBpZiAoTW9kdWxlWyJFTlZJUk9OTUVOVCJdID09PSAiU0hFTEwiKSB7CiAgICAgICAgICAgIEVOVklST05NRU5UX0lTX1NIRUxMID0gdHJ1ZQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTW9kdWxlWydFTlZJUk9OTUVOVCddIHZhbHVlIGlzIG5vdCB2YWxpZC4gbXVzdCBiZSBvbmUgb2Y6IFdFQnxXT1JLRVJ8Tk9ERXxTSEVMTC4iKQogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgRU5WSVJPTk1FTlRfSVNfV0VCID0gdHlwZW9mIHdpbmRvdyA9PT0gIm9iamVjdCI7CiAgICAgICAgRU5WSVJPTk1FTlRfSVNfV09SS0VSID0gdHlwZW9mIGltcG9ydFNjcmlwdHMgPT09ICJmdW5jdGlvbiI7CiAgICAgICAgRU5WSVJPTk1FTlRfSVNfTk9ERSA9IHR5cGVvZiBwcm9jZXNzID09PSAib2JqZWN0IiAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gImZ1bmN0aW9uIiAmJiAhRU5WSVJPTk1FTlRfSVNfV0VCICYmICFFTlZJUk9OTUVOVF9JU19XT1JLRVI7CiAgICAgICAgRU5WSVJPTk1FTlRfSVNfU0hFTEwgPSAhRU5WSVJPTk1FTlRfSVNfV0VCICYmICFFTlZJUk9OTUVOVF9JU19OT0RFICYmICFFTlZJUk9OTUVOVF9JU19XT1JLRVIKICAgIH0KICAgIGlmIChFTlZJUk9OTUVOVF9JU19OT0RFKSB7CiAgICAgICAgdmFyIG5vZGVGUzsKICAgICAgICB2YXIgbm9kZVBhdGg7CiAgICAgICAgTW9kdWxlWyJyZWFkIl0gPSBmdW5jdGlvbiBzaGVsbF9yZWFkKGZpbGVuYW1lLCBiaW5hcnkpIHsKICAgICAgICAgICAgdmFyIHJldDsKICAgICAgICAgICAgaWYgKCFub2RlRlMpIG5vZGVGUyA9IHJlcXVpcmUoImZzIik7CiAgICAgICAgICAgIGlmICghbm9kZVBhdGgpIG5vZGVQYXRoID0gcmVxdWlyZSgicGF0aCIpOwogICAgICAgICAgICBmaWxlbmFtZSA9IG5vZGVQYXRoWyJub3JtYWxpemUiXShmaWxlbmFtZSk7CiAgICAgICAgICAgIHJldCA9IG5vZGVGU1sicmVhZEZpbGVTeW5jIl0oZmlsZW5hbWUpOwogICAgICAgICAgICByZXR1cm4gYmluYXJ5ID8gcmV0IDogcmV0LnRvU3RyaW5nKCkKICAgICAgICB9OwogICAgICAgIE1vZHVsZVsicmVhZEJpbmFyeSJdID0gZnVuY3Rpb24gcmVhZEJpbmFyeShmaWxlbmFtZSkgewogICAgICAgICAgICB2YXIgcmV0ID0gTW9kdWxlWyJyZWFkIl0oZmlsZW5hbWUsIHRydWUpOwogICAgICAgICAgICBpZiAoIXJldC5idWZmZXIpIHsKICAgICAgICAgICAgICAgIHJldCA9IG5ldyBVaW50OEFycmF5KHJldCkKICAgICAgICAgICAgfQogICAgICAgICAgICBhc3NlcnQocmV0LmJ1ZmZlcik7CiAgICAgICAgICAgIHJldHVybiByZXQKICAgICAgICB9OwogICAgICAgIGlmIChwcm9jZXNzWyJhcmd2Il0ubGVuZ3RoID4gMSkgewogICAgICAgICAgICBNb2R1bGVbInRoaXNQcm9ncmFtIl0gPSBwcm9jZXNzWyJhcmd2Il1bMV0ucmVwbGFjZSgvXFwvZywgIi8iKQogICAgICAgIH0KICAgICAgICBNb2R1bGVbImFyZ3VtZW50cyJdID0gcHJvY2Vzc1siYXJndiJdLnNsaWNlKDIpOwogICAgICAgIGlmICh0eXBlb2YgbW9kdWxlICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICBtb2R1bGVbImV4cG9ydHMiXSA9IE1vZHVsZQogICAgICAgIH0KICAgICAgICBwcm9jZXNzWyJvbiJdKCJ1bmNhdWdodEV4Y2VwdGlvbiIsIChmdW5jdGlvbihleCkgewogICAgICAgICAgICBpZiAoIShleCBpbnN0YW5jZW9mIEV4aXRTdGF0dXMpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBleAogICAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICAgIHByb2Nlc3NbIm9uIl0oInVuaGFuZGxlZFJlamVjdGlvbiIsIChmdW5jdGlvbihyZWFzb24sIHApIHsKICAgICAgICAgICAgcHJvY2Vzc1siZXhpdCJdKDEpCiAgICAgICAgfSkpOwogICAgICAgIE1vZHVsZVsiaW5zcGVjdCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gIltFbXNjcmlwdGVuIE1vZHVsZSBvYmplY3RdIgogICAgICAgIH0pCiAgICB9IGVsc2UgaWYgKEVOVklST05NRU5UX0lTX1NIRUxMKSB7CiAgICAgICAgaWYgKHR5cGVvZiByZWFkICE9ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIE1vZHVsZVsicmVhZCJdID0gZnVuY3Rpb24gc2hlbGxfcmVhZChmKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gcmVhZChmKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIE1vZHVsZVsicmVhZEJpbmFyeSJdID0gZnVuY3Rpb24gcmVhZEJpbmFyeShmKSB7CiAgICAgICAgICAgIHZhciBkYXRhOwogICAgICAgICAgICBpZiAodHlwZW9mIHJlYWRidWZmZXIgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShyZWFkYnVmZmVyKGYpKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGEgPSByZWFkKGYsICJiaW5hcnkiKTsKICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZiBkYXRhID09PSAib2JqZWN0Iik7CiAgICAgICAgICAgIHJldHVybiBkYXRhCiAgICAgICAgfTsKICAgICAgICBpZiAodHlwZW9mIHNjcmlwdEFyZ3MgIT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgTW9kdWxlWyJhcmd1bWVudHMiXSA9IHNjcmlwdEFyZ3MKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHMgIT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgTW9kdWxlWyJhcmd1bWVudHMiXSA9IGFyZ3VtZW50cwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIHF1aXQgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgTW9kdWxlWyJxdWl0Il0gPSAoZnVuY3Rpb24oc3RhdHVzLCB0b1Rocm93KSB7CiAgICAgICAgICAgICAgICBxdWl0KHN0YXR1cykKICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9IGVsc2UgaWYgKEVOVklST05NRU5UX0lTX1dFQiB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHsKICAgICAgICBNb2R1bGVbInJlYWQiXSA9IGZ1bmN0aW9uIHNoZWxsX3JlYWQodXJsKSB7CiAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CiAgICAgICAgICAgIHhoci5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7CiAgICAgICAgICAgIHJldHVybiB4aHIucmVzcG9uc2VUZXh0CiAgICAgICAgfTsKICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfV09SS0VSKSB7CiAgICAgICAgICAgIE1vZHVsZVsicmVhZEJpbmFyeSJdID0gZnVuY3Rpb24gcmVhZEJpbmFyeSh1cmwpIHsKICAgICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CiAgICAgICAgICAgICAgICB4aHIub3BlbigiR0VUIiwgdXJsLCBmYWxzZSk7CiAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gImFycmF5YnVmZmVyIjsKICAgICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHhoci5yZXNwb25zZSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBNb2R1bGVbInJlYWRBc3luYyJdID0gZnVuY3Rpb24gcmVhZEFzeW5jKHVybCwgb25sb2FkLCBvbmVycm9yKSB7CiAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CiAgICAgICAgICAgIHhoci5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOwogICAgICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gImFycmF5YnVmZmVyIjsKICAgICAgICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uIHhocl9vbmxvYWQoKSB7CiAgICAgICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PSAyMDAgfHwgeGhyLnN0YXR1cyA9PSAwICYmIHhoci5yZXNwb25zZSkgewogICAgICAgICAgICAgICAgICAgIG9ubG9hZCh4aHIucmVzcG9uc2UpOwogICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgb25lcnJvcigpCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHhoci5vbmVycm9yID0gb25lcnJvcjsKICAgICAgICAgICAgeGhyLnNlbmQobnVsbCkKICAgICAgICB9OwogICAgICAgIE1vZHVsZVsic2V0V2luZG93VGl0bGUiXSA9IChmdW5jdGlvbih0aXRsZSkgewogICAgICAgICAgICBkb2N1bWVudC50aXRsZSA9IHRpdGxlCiAgICAgICAgfSkKICAgIH0KICAgIE1vZHVsZVsicHJpbnQiXSA9IHR5cGVvZiBjb25zb2xlICE9PSAidW5kZWZpbmVkIiA/IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSkgOiB0eXBlb2YgcHJpbnQgIT09ICJ1bmRlZmluZWQiID8gcHJpbnQgOiBudWxsOwogICAgTW9kdWxlWyJwcmludEVyciJdID0gdHlwZW9mIHByaW50RXJyICE9PSAidW5kZWZpbmVkIiA/IHByaW50RXJyIDogdHlwZW9mIGNvbnNvbGUgIT09ICJ1bmRlZmluZWQiICYmIGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpIHx8IE1vZHVsZVsicHJpbnQiXTsKICAgIE1vZHVsZS5wcmludCA9IE1vZHVsZVsicHJpbnQiXTsKICAgIE1vZHVsZS5wcmludEVyciA9IE1vZHVsZVsicHJpbnRFcnIiXTsKICAgIGZvciAoa2V5IGluIG1vZHVsZU92ZXJyaWRlcykgewogICAgICAgIGlmIChtb2R1bGVPdmVycmlkZXMuaGFzT3duUHJvcGVydHkoa2V5KSkgewogICAgICAgICAgICBNb2R1bGVba2V5XSA9IG1vZHVsZU92ZXJyaWRlc1trZXldCiAgICAgICAgfQogICAgfQogICAgbW9kdWxlT3ZlcnJpZGVzID0gdW5kZWZpbmVkOwogICAgdmFyIFNUQUNLX0FMSUdOID0gMTY7CgogICAgZnVuY3Rpb24gc3RhdGljQWxsb2Moc2l6ZSkgewogICAgICAgIGFzc2VydCghc3RhdGljU2VhbGVkKTsKICAgICAgICB2YXIgcmV0ID0gU1RBVElDVE9QOwogICAgICAgIFNUQVRJQ1RPUCA9IFNUQVRJQ1RPUCArIHNpemUgKyAxNSAmIC0xNjsKICAgICAgICByZXR1cm4gcmV0CiAgICB9CgogICAgZnVuY3Rpb24gZHluYW1pY0FsbG9jKHNpemUpIHsKICAgICAgICBhc3NlcnQoRFlOQU1JQ1RPUF9QVFIpOwogICAgICAgIHZhciByZXQgPSBIRUFQMzJbRFlOQU1JQ1RPUF9QVFIgPj4gMl07CiAgICAgICAgdmFyIGVuZCA9IHJldCArIHNpemUgKyAxNSAmIC0xNjsKICAgICAgICBIRUFQMzJbRFlOQU1JQ1RPUF9QVFIgPj4gMl0gPSBlbmQ7CiAgICAgICAgaWYgKGVuZCA+PSBUT1RBTF9NRU1PUlkpIHsKICAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSBlbmxhcmdlTWVtb3J5KCk7CiAgICAgICAgICAgIGlmICghc3VjY2VzcykgewogICAgICAgICAgICAgICAgSEVBUDMyW0RZTkFNSUNUT1BfUFRSID4+IDJdID0gcmV0OwogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcmV0CiAgICB9CgogICAgZnVuY3Rpb24gYWxpZ25NZW1vcnkoc2l6ZSwgZmFjdG9yKSB7CiAgICAgICAgaWYgKCFmYWN0b3IpIGZhY3RvciA9IFNUQUNLX0FMSUdOOwogICAgICAgIHZhciByZXQgPSBzaXplID0gTWF0aC5jZWlsKHNpemUgLyBmYWN0b3IpICogZmFjdG9yOwogICAgICAgIHJldHVybiByZXQKICAgIH0KCiAgICBmdW5jdGlvbiBnZXROYXRpdmVUeXBlU2l6ZSh0eXBlKSB7CiAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgICAgIGNhc2UgImkxIjoKICAgICAgICAgICAgY2FzZSAiaTgiOgogICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgIGNhc2UgImkxNiI6CiAgICAgICAgICAgICAgICByZXR1cm4gMjsKICAgICAgICAgICAgY2FzZSAiaTMyIjoKICAgICAgICAgICAgICAgIHJldHVybiA0OwogICAgICAgICAgICBjYXNlICJpNjQiOgogICAgICAgICAgICAgICAgcmV0dXJuIDg7CiAgICAgICAgICAgIGNhc2UgImZsb2F0IjoKICAgICAgICAgICAgICAgIHJldHVybiA0OwogICAgICAgICAgICBjYXNlICJkb3VibGUiOgogICAgICAgICAgICAgICAgcmV0dXJuIDg7CiAgICAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgICAgIGlmICh0eXBlW3R5cGUubGVuZ3RoIC0gMV0gPT09ICIqIikgewogICAgICAgICAgICAgICAgICAgIHJldHVybiA0CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVbMF0gPT09ICJpIikgewogICAgICAgICAgICAgICAgICAgIHZhciBiaXRzID0gcGFyc2VJbnQodHlwZS5zdWJzdHIoMSkpOwogICAgICAgICAgICAgICAgICAgIGFzc2VydChiaXRzICUgOCA9PT0gMCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJpdHMgLyA4CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gd2Fybk9uY2UodGV4dCkgewogICAgICAgIGlmICghd2Fybk9uY2Uuc2hvd24pIHdhcm5PbmNlLnNob3duID0ge307CiAgICAgICAgaWYgKCF3YXJuT25jZS5zaG93blt0ZXh0XSkgewogICAgICAgICAgICB3YXJuT25jZS5zaG93blt0ZXh0XSA9IDE7CiAgICAgICAgICAgIE1vZHVsZS5wcmludEVycih0ZXh0KQogICAgICAgIH0KICAgIH0KICAgIHZhciBqc0NhbGxTdGFydEluZGV4ID0gMTsKICAgIHZhciBmdW5jdGlvblBvaW50ZXJzID0gbmV3IEFycmF5KDApOwoKICAgIGZ1bmN0aW9uIGFkZEZ1bmN0aW9uKGZ1bmMsIHNpZykgewogICAgICAgIHZhciBiYXNlID0gMDsKICAgICAgICBmb3IgKHZhciBpID0gYmFzZTsgaSA8IGJhc2UgKyAwOyBpKyspIHsKICAgICAgICAgICAgaWYgKCFmdW5jdGlvblBvaW50ZXJzW2ldKSB7CiAgICAgICAgICAgICAgICBmdW5jdGlvblBvaW50ZXJzW2ldID0gZnVuYzsKICAgICAgICAgICAgICAgIHJldHVybiBqc0NhbGxTdGFydEluZGV4ICsgaQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRocm93ICJGaW5pc2hlZCB1cCBhbGwgcmVzZXJ2ZWQgZnVuY3Rpb24gcG9pbnRlcnMuIFVzZSBhIGhpZ2hlciB2YWx1ZSBmb3IgUkVTRVJWRURfRlVOQ1RJT05fUE9JTlRFUlMuIgogICAgfQogICAgdmFyIGZ1bmNXcmFwcGVycyA9IHt9OwoKICAgIGZ1bmN0aW9uIGdldEZ1bmNXcmFwcGVyKGZ1bmMsIHNpZykgewogICAgICAgIGlmICghZnVuYykgcmV0dXJuOwogICAgICAgIGFzc2VydChzaWcpOwogICAgICAgIGlmICghZnVuY1dyYXBwZXJzW3NpZ10pIHsKICAgICAgICAgICAgZnVuY1dyYXBwZXJzW3NpZ10gPSB7fQogICAgICAgIH0KICAgICAgICB2YXIgc2lnQ2FjaGUgPSBmdW5jV3JhcHBlcnNbc2lnXTsKICAgICAgICBpZiAoIXNpZ0NhY2hlW2Z1bmNdKSB7CiAgICAgICAgICAgIGlmIChzaWcubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgICBzaWdDYWNoZVtmdW5jXSA9IGZ1bmN0aW9uIGR5bkNhbGxfd3JhcHBlcigpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZHluQ2FsbChzaWcsIGZ1bmMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2lnLmxlbmd0aCA9PT0gMikgewogICAgICAgICAgICAgICAgc2lnQ2FjaGVbZnVuY10gPSBmdW5jdGlvbiBkeW5DYWxsX3dyYXBwZXIoYXJnKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGR5bkNhbGwoc2lnLCBmdW5jLCBbYXJnXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHNpZ0NhY2hlW2Z1bmNdID0gZnVuY3Rpb24gZHluQ2FsbF93cmFwcGVyKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBkeW5DYWxsKHNpZywgZnVuYywgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gc2lnQ2FjaGVbZnVuY10KICAgIH0KCiAgICBmdW5jdGlvbiBtYWtlQmlnSW50KGxvdywgaGlnaCwgdW5zaWduZWQpIHsKICAgICAgICByZXR1cm4gdW5zaWduZWQgPyArKGxvdyA+Pj4gMCkgKyArKGhpZ2ggPj4+IDApICogNDI5NDk2NzI5NiA6ICsobG93ID4+PiAwKSArICsoaGlnaCB8IDApICogNDI5NDk2NzI5NgogICAgfQoKICAgIGZ1bmN0aW9uIGR5bkNhbGwoc2lnLCBwdHIsIGFyZ3MpIHsKICAgICAgICBpZiAoYXJncyAmJiBhcmdzLmxlbmd0aCkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsXyIgKyBzaWddLmFwcGx5KG51bGwsIFtwdHJdLmNvbmNhdChhcmdzKSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsXyIgKyBzaWddLmNhbGwobnVsbCwgcHRyKQogICAgICAgIH0KICAgIH0KICAgIHZhciBHTE9CQUxfQkFTRSA9IDEwMjQ7CiAgICB2YXIgQUJPUlQgPSAwOwogICAgdmFyIEVYSVRTVEFUVVMgPSAwOwoKICAgIGZ1bmN0aW9uIGFzc2VydChjb25kaXRpb24sIHRleHQpIHsKICAgICAgICBpZiAoIWNvbmRpdGlvbikgewogICAgICAgICAgICBhYm9ydCgiQXNzZXJ0aW9uIGZhaWxlZDogIiArIHRleHQpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGdldENGdW5jKGlkZW50KSB7CiAgICAgICAgdmFyIGZ1bmMgPSBNb2R1bGVbIl8iICsgaWRlbnRdOwogICAgICAgIGFzc2VydChmdW5jLCAiQ2Fubm90IGNhbGwgdW5rbm93biBmdW5jdGlvbiAiICsgaWRlbnQgKyAiLCBtYWtlIHN1cmUgaXQgaXMgZXhwb3J0ZWQiKTsKICAgICAgICByZXR1cm4gZnVuYwogICAgfQogICAgdmFyIEpTZnVuY3MgPSB7CiAgICAgICAgInN0YWNrU2F2ZSI6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgc3RhY2tTYXZlKCkKICAgICAgICB9KSwKICAgICAgICAic3RhY2tSZXN0b3JlIjogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzdGFja1Jlc3RvcmUoKQogICAgICAgIH0pLAogICAgICAgICJhcnJheVRvQyI6IChmdW5jdGlvbihhcnIpIHsKICAgICAgICAgICAgdmFyIHJldCA9IHN0YWNrQWxsb2MoYXJyLmxlbmd0aCk7CiAgICAgICAgICAgIHdyaXRlQXJyYXlUb01lbW9yeShhcnIsIHJldCk7CiAgICAgICAgICAgIHJldHVybiByZXQKICAgICAgICB9KSwKICAgICAgICAic3RyaW5nVG9DIjogKGZ1bmN0aW9uKHN0cikgewogICAgICAgICAgICB2YXIgcmV0ID0gMDsKICAgICAgICAgICAgaWYgKHN0ciAhPT0gbnVsbCAmJiBzdHIgIT09IHVuZGVmaW5lZCAmJiBzdHIgIT09IDApIHsKICAgICAgICAgICAgICAgIHZhciBsZW4gPSAoc3RyLmxlbmd0aCA8PCAyKSArIDE7CiAgICAgICAgICAgICAgICByZXQgPSBzdGFja0FsbG9jKGxlbik7CiAgICAgICAgICAgICAgICBzdHJpbmdUb1VURjgoc3RyLCByZXQsIGxlbikKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcmV0CiAgICAgICAgfSkKICAgIH07CiAgICB2YXIgdG9DID0gewogICAgICAgICJzdHJpbmciOiBKU2Z1bmNzWyJzdHJpbmdUb0MiXSwKICAgICAgICAiYXJyYXkiOiBKU2Z1bmNzWyJhcnJheVRvQyJdCiAgICB9OwoKICAgIGZ1bmN0aW9uIGNjYWxsKGlkZW50LCByZXR1cm5UeXBlLCBhcmdUeXBlcywgYXJncywgb3B0cykgewogICAgICAgIHZhciBmdW5jID0gZ2V0Q0Z1bmMoaWRlbnQpOwogICAgICAgIHZhciBjQXJncyA9IFtdOwogICAgICAgIHZhciBzdGFjayA9IDA7CiAgICAgICAgaWYgKGFyZ3MpIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgY29udmVydGVyID0gdG9DW2FyZ1R5cGVzW2ldXTsKICAgICAgICAgICAgICAgIGlmIChjb252ZXJ0ZXIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2sgPT09IDApIHN0YWNrID0gc3RhY2tTYXZlKCk7CiAgICAgICAgICAgICAgICAgICAgY0FyZ3NbaV0gPSBjb252ZXJ0ZXIoYXJnc1tpXSkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY0FyZ3NbaV0gPSBhcmdzW2ldCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdmFyIHJldCA9IGZ1bmMuYXBwbHkobnVsbCwgY0FyZ3MpOwogICAgICAgIGlmIChyZXR1cm5UeXBlID09PSAic3RyaW5nIikgcmV0ID0gUG9pbnRlcl9zdHJpbmdpZnkocmV0KTsKICAgICAgICBlbHNlIGlmIChyZXR1cm5UeXBlID09PSAiYm9vbGVhbiIpIHJldCA9IEJvb2xlYW4ocmV0KTsKICAgICAgICBpZiAoc3RhY2sgIT09IDApIHsKICAgICAgICAgICAgc3RhY2tSZXN0b3JlKHN0YWNrKQogICAgICAgIH0KICAgICAgICByZXR1cm4gcmV0CiAgICB9CgogICAgZnVuY3Rpb24gY3dyYXAoaWRlbnQsIHJldHVyblR5cGUsIGFyZ1R5cGVzKSB7CiAgICAgICAgYXJnVHlwZXMgPSBhcmdUeXBlcyB8fCBbXTsKICAgICAgICB2YXIgY2Z1bmMgPSBnZXRDRnVuYyhpZGVudCk7CiAgICAgICAgdmFyIG51bWVyaWNBcmdzID0gYXJnVHlwZXMuZXZlcnkoKGZ1bmN0aW9uKHR5cGUpIHsKICAgICAgICAgICAgcmV0dXJuIHR5cGUgPT09ICJudW1iZXIiCiAgICAgICAgfSkpOwogICAgICAgIHZhciBudW1lcmljUmV0ID0gcmV0dXJuVHlwZSAhPT0gInN0cmluZyI7CiAgICAgICAgaWYgKG51bWVyaWNSZXQgJiYgbnVtZXJpY0FyZ3MpIHsKICAgICAgICAgICAgcmV0dXJuIGNmdW5jCiAgICAgICAgfQogICAgICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBjY2FsbChpZGVudCwgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3VtZW50cykKICAgICAgICB9KQogICAgfQoKICAgIGZ1bmN0aW9uIHNldFZhbHVlKHB0ciwgdmFsdWUsIHR5cGUsIG5vU2FmZSkgewogICAgICAgIHR5cGUgPSB0eXBlIHx8ICJpOCI7CiAgICAgICAgaWYgKHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoIC0gMSkgPT09ICIqIikgdHlwZSA9ICJpMzIiOwogICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICBjYXNlICJpMSI6CiAgICAgICAgICAgICAgICBIRUFQOFtwdHIgPj4gMF0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJpOCI6CiAgICAgICAgICAgICAgICBIRUFQOFtwdHIgPj4gMF0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJpMTYiOgogICAgICAgICAgICAgICAgSEVBUDE2W3B0ciA+PiAxXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImkzMiI6CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyID4+IDJdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiaTY0IjoKICAgICAgICAgICAgICAgIHRlbXBJNjQgPSBbdmFsdWUgPj4+IDAsICh0ZW1wRG91YmxlID0gdmFsdWUsICtNYXRoX2Ficyh0ZW1wRG91YmxlKSA+PSAxID8gdGVtcERvdWJsZSA+IDAgPyAoTWF0aF9taW4oK01hdGhfZmxvb3IodGVtcERvdWJsZSAvIDQyOTQ5NjcyOTYpLCA0Mjk0OTY3Mjk1KSB8IDApID4+PiAwIDogfn4rTWF0aF9jZWlsKCh0ZW1wRG91YmxlIC0gKyh+fnRlbXBEb3VibGUgPj4+IDApKSAvIDQyOTQ5NjcyOTYpID4+PiAwIDogMCldLCBIRUFQMzJbcHRyID4+IDJdID0gdGVtcEk2NFswXSwgSEVBUDMyW3B0ciArIDQgPj4gMl0gPSB0ZW1wSTY0WzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZsb2F0IjoKICAgICAgICAgICAgICAgIEhFQVBGMzJbcHRyID4+IDJdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZG91YmxlIjoKICAgICAgICAgICAgICAgIEhFQVBGNjRbcHRyID4+IDNdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGFib3J0KCJpbnZhbGlkIHR5cGUgZm9yIHNldFZhbHVlOiAiICsgdHlwZSkKICAgICAgICB9CiAgICB9CiAgICB2YXIgQUxMT0NfTk9STUFMID0gMDsKICAgIHZhciBBTExPQ19TVEFDSyA9IDE7CiAgICB2YXIgQUxMT0NfU1RBVElDID0gMjsKICAgIHZhciBBTExPQ19OT05FID0gNDsKCiAgICBmdW5jdGlvbiBhbGxvY2F0ZShzbGFiLCB0eXBlcywgYWxsb2NhdG9yLCBwdHIpIHsKICAgICAgICB2YXIgemVyb2luaXQsIHNpemU7CiAgICAgICAgaWYgKHR5cGVvZiBzbGFiID09PSAibnVtYmVyIikgewogICAgICAgICAgICB6ZXJvaW5pdCA9IHRydWU7CiAgICAgICAgICAgIHNpemUgPSBzbGFiCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgemVyb2luaXQgPSBmYWxzZTsKICAgICAgICAgICAgc2l6ZSA9IHNsYWIubGVuZ3RoCiAgICAgICAgfQogICAgICAgIHZhciBzaW5nbGVUeXBlID0gdHlwZW9mIHR5cGVzID09PSAic3RyaW5nIiA/IHR5cGVzIDogbnVsbDsKICAgICAgICB2YXIgcmV0OwogICAgICAgIGlmIChhbGxvY2F0b3IgPT0gQUxMT0NfTk9ORSkgewogICAgICAgICAgICByZXQgPSBwdHIKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXQgPSBbdHlwZW9mIF9tYWxsb2MgPT09ICJmdW5jdGlvbiIgPyBfbWFsbG9jIDogc3RhdGljQWxsb2MsIHN0YWNrQWxsb2MsIHN0YXRpY0FsbG9jLCBkeW5hbWljQWxsb2NdW2FsbG9jYXRvciA9PT0gdW5kZWZpbmVkID8gQUxMT0NfU1RBVElDIDogYWxsb2NhdG9yXShNYXRoLm1heChzaXplLCBzaW5nbGVUeXBlID8gMSA6IHR5cGVzLmxlbmd0aCkpCiAgICAgICAgfQogICAgICAgIGlmICh6ZXJvaW5pdCkgewogICAgICAgICAgICB2YXIgc3RvcDsKICAgICAgICAgICAgcHRyID0gcmV0OwogICAgICAgICAgICBhc3NlcnQoKHJldCAmIDMpID09IDApOwogICAgICAgICAgICBzdG9wID0gcmV0ICsgKHNpemUgJiB+Myk7CiAgICAgICAgICAgIGZvciAoOyBwdHIgPCBzdG9wOyBwdHIgKz0gNCkgewogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciA+PiAyXSA9IDAKICAgICAgICAgICAgfQogICAgICAgICAgICBzdG9wID0gcmV0ICsgc2l6ZTsKICAgICAgICAgICAgd2hpbGUgKHB0ciA8IHN0b3ApIHsKICAgICAgICAgICAgICAgIEhFQVA4W3B0cisrID4+IDBdID0gMAogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiByZXQKICAgICAgICB9CiAgICAgICAgaWYgKHNpbmdsZVR5cGUgPT09ICJpOCIpIHsKICAgICAgICAgICAgaWYgKHNsYWIuc3ViYXJyYXkgfHwgc2xhYi5zbGljZSkgewogICAgICAgICAgICAgICAgSEVBUFU4LnNldChzbGFiLCByZXQpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBIRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHNsYWIpLCByZXQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgIH0KICAgICAgICB2YXIgaSA9IDAsCiAgICAgICAgICAgIHR5cGUsIHR5cGVTaXplLCBwcmV2aW91c1R5cGU7CiAgICAgICAgd2hpbGUgKGkgPCBzaXplKSB7CiAgICAgICAgICAgIHZhciBjdXJyID0gc2xhYltpXTsKICAgICAgICAgICAgdHlwZSA9IHNpbmdsZVR5cGUgfHwgdHlwZXNbaV07CiAgICAgICAgICAgIGlmICh0eXBlID09PSAwKSB7CiAgICAgICAgICAgICAgICBpKys7CiAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0eXBlID09ICJpNjQiKSB0eXBlID0gImkzMiI7CiAgICAgICAgICAgIHNldFZhbHVlKHJldCArIGksIGN1cnIsIHR5cGUpOwogICAgICAgICAgICBpZiAocHJldmlvdXNUeXBlICE9PSB0eXBlKSB7CiAgICAgICAgICAgICAgICB0eXBlU2l6ZSA9IGdldE5hdGl2ZVR5cGVTaXplKHR5cGUpOwogICAgICAgICAgICAgICAgcHJldmlvdXNUeXBlID0gdHlwZQogICAgICAgICAgICB9CiAgICAgICAgICAgIGkgKz0gdHlwZVNpemUKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJldAogICAgfQoKICAgIGZ1bmN0aW9uIFBvaW50ZXJfc3RyaW5naWZ5KHB0ciwgbGVuZ3RoKSB7CiAgICAgICAgaWYgKGxlbmd0aCA9PT0gMCB8fCAhcHRyKSByZXR1cm4gIiI7CiAgICAgICAgdmFyIGhhc1V0ZiA9IDA7CiAgICAgICAgdmFyIHQ7CiAgICAgICAgdmFyIGkgPSAwOwogICAgICAgIHdoaWxlICgxKSB7CiAgICAgICAgICAgIHQgPSBIRUFQVThbcHRyICsgaSA+PiAwXTsKICAgICAgICAgICAgaGFzVXRmIHw9IHQ7CiAgICAgICAgICAgIGlmICh0ID09IDAgJiYgIWxlbmd0aCkgYnJlYWs7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgaWYgKGxlbmd0aCAmJiBpID09IGxlbmd0aCkgYnJlYWsKICAgICAgICB9CiAgICAgICAgaWYgKCFsZW5ndGgpIGxlbmd0aCA9IGk7CiAgICAgICAgdmFyIHJldCA9ICIiOwogICAgICAgIGlmIChoYXNVdGYgPCAxMjgpIHsKICAgICAgICAgICAgdmFyIE1BWF9DSFVOSyA9IDEwMjQ7CiAgICAgICAgICAgIHZhciBjdXJyOwogICAgICAgICAgICB3aGlsZSAobGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgY3VyciA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBIRUFQVTguc3ViYXJyYXkocHRyLCBwdHIgKyBNYXRoLm1pbihsZW5ndGgsIE1BWF9DSFVOSykpKTsKICAgICAgICAgICAgICAgIHJldCA9IHJldCA/IHJldCArIGN1cnIgOiBjdXJyOwogICAgICAgICAgICAgICAgcHRyICs9IE1BWF9DSFVOSzsKICAgICAgICAgICAgICAgIGxlbmd0aCAtPSBNQVhfQ0hVTksKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcmV0CiAgICAgICAgfQogICAgICAgIHJldHVybiBVVEY4VG9TdHJpbmcocHRyKQogICAgfQogICAgdmFyIFVURjhEZWNvZGVyID0gdHlwZW9mIFRleHREZWNvZGVyICE9PSAidW5kZWZpbmVkIiA/IG5ldyBUZXh0RGVjb2RlcigidXRmOCIpIDogdW5kZWZpbmVkOwoKICAgIGZ1bmN0aW9uIFVURjhBcnJheVRvU3RyaW5nKHU4QXJyYXksIGlkeCkgewogICAgICAgIHZhciBlbmRQdHIgPSBpZHg7CiAgICAgICAgd2hpbGUgKHU4QXJyYXlbZW5kUHRyXSkgKytlbmRQdHI7CiAgICAgICAgaWYgKGVuZFB0ciAtIGlkeCA+IDE2ICYmIHU4QXJyYXkuc3ViYXJyYXkgJiYgVVRGOERlY29kZXIpIHsKICAgICAgICAgICAgcmV0dXJuIFVURjhEZWNvZGVyLmRlY29kZSh1OEFycmF5LnN1YmFycmF5KGlkeCwgZW5kUHRyKSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgdTAsIHUxLCB1MiwgdTMsIHU0LCB1NTsKICAgICAgICAgICAgdmFyIHN0ciA9ICIiOwogICAgICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICAgICAgdTAgPSB1OEFycmF5W2lkeCsrXTsKICAgICAgICAgICAgICAgIGlmICghdTApIHJldHVybiBzdHI7CiAgICAgICAgICAgICAgICBpZiAoISh1MCAmIDEyOCkpIHsKICAgICAgICAgICAgICAgICAgICBzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh1MCk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHUxID0gdThBcnJheVtpZHgrK10gJiA2MzsKICAgICAgICAgICAgICAgIGlmICgodTAgJiAyMjQpID09IDE5MikgewogICAgICAgICAgICAgICAgICAgIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCh1MCAmIDMxKSA8PCA2IHwgdTEpOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB1MiA9IHU4QXJyYXlbaWR4KytdICYgNjM7CiAgICAgICAgICAgICAgICBpZiAoKHUwICYgMjQwKSA9PSAyMjQpIHsKICAgICAgICAgICAgICAgICAgICB1MCA9ICh1MCAmIDE1KSA8PCAxMiB8IHUxIDw8IDYgfCB1MgogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB1MyA9IHU4QXJyYXlbaWR4KytdICYgNjM7CiAgICAgICAgICAgICAgICAgICAgaWYgKCh1MCAmIDI0OCkgPT0gMjQwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHUwID0gKHUwICYgNykgPDwgMTggfCB1MSA8PCAxMiB8IHUyIDw8IDYgfCB1MwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHU0ID0gdThBcnJheVtpZHgrK10gJiA2MzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh1MCAmIDI1MikgPT0gMjQ4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MCA9ICh1MCAmIDMpIDw8IDI0IHwgdTEgPDwgMTggfCB1MiA8PCAxMiB8IHUzIDw8IDYgfCB1NAogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdTUgPSB1OEFycmF5W2lkeCsrXSAmIDYzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdTAgPSAodTAgJiAxKSA8PCAzMCB8IHUxIDw8IDI0IHwgdTIgPDwgMTggfCB1MyA8PCAxMiB8IHU0IDw8IDYgfCB1NQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHUwIDwgNjU1MzYpIHsKICAgICAgICAgICAgICAgICAgICBzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh1MCkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNoID0gdTAgLSA2NTUzNjsKICAgICAgICAgICAgICAgICAgICBzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NiB8IGNoID4+IDEwLCA1NjMyMCB8IGNoICYgMTAyMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBVVEY4VG9TdHJpbmcocHRyKSB7CiAgICAgICAgcmV0dXJuIFVURjhBcnJheVRvU3RyaW5nKEhFQVBVOCwgcHRyKQogICAgfQoKICAgIGZ1bmN0aW9uIHN0cmluZ1RvVVRGOEFycmF5KHN0ciwgb3V0VThBcnJheSwgb3V0SWR4LCBtYXhCeXRlc1RvV3JpdGUpIHsKICAgICAgICBpZiAoIShtYXhCeXRlc1RvV3JpdGUgPiAwKSkgcmV0dXJuIDA7CiAgICAgICAgdmFyIHN0YXJ0SWR4ID0gb3V0SWR4OwogICAgICAgIHZhciBlbmRJZHggPSBvdXRJZHggKyBtYXhCeXRlc1RvV3JpdGUgLSAxOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgIHZhciB1ID0gc3RyLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgICAgIGlmICh1ID49IDU1Mjk2ICYmIHUgPD0gNTczNDMpIHUgPSA2NTUzNiArICgodSAmIDEwMjMpIDw8IDEwKSB8IHN0ci5jaGFyQ29kZUF0KCsraSkgJiAxMDIzOwogICAgICAgICAgICBpZiAodSA8PSAxMjcpIHsKICAgICAgICAgICAgICAgIGlmIChvdXRJZHggPj0gZW5kSWR4KSBicmVhazsKICAgICAgICAgICAgICAgIG91dFU4QXJyYXlbb3V0SWR4KytdID0gdQogICAgICAgICAgICB9IGVsc2UgaWYgKHUgPD0gMjA0NykgewogICAgICAgICAgICAgICAgaWYgKG91dElkeCArIDEgPj0gZW5kSWR4KSBicmVhazsKICAgICAgICAgICAgICAgIG91dFU4QXJyYXlbb3V0SWR4KytdID0gMTkyIHwgdSA+PiA2OwogICAgICAgICAgICAgICAgb3V0VThBcnJheVtvdXRJZHgrK10gPSAxMjggfCB1ICYgNjMKICAgICAgICAgICAgfSBlbHNlIGlmICh1IDw9IDY1NTM1KSB7CiAgICAgICAgICAgICAgICBpZiAob3V0SWR4ICsgMiA+PSBlbmRJZHgpIGJyZWFrOwogICAgICAgICAgICAgICAgb3V0VThBcnJheVtvdXRJZHgrK10gPSAyMjQgfCB1ID4+IDEyOwogICAgICAgICAgICAgICAgb3V0VThBcnJheVtvdXRJZHgrK10gPSAxMjggfCB1ID4+IDYgJiA2MzsKICAgICAgICAgICAgICAgIG91dFU4QXJyYXlbb3V0SWR4KytdID0gMTI4IHwgdSAmIDYzCiAgICAgICAgICAgIH0gZWxzZSBpZiAodSA8PSAyMDk3MTUxKSB7CiAgICAgICAgICAgICAgICBpZiAob3V0SWR4ICsgMyA+PSBlbmRJZHgpIGJyZWFrOwogICAgICAgICAgICAgICAgb3V0VThBcnJheVtvdXRJZHgrK10gPSAyNDAgfCB1ID4+IDE4OwogICAgICAgICAgICAgICAgb3V0VThBcnJheVtvdXRJZHgrK10gPSAxMjggfCB1ID4+IDEyICYgNjM7CiAgICAgICAgICAgICAgICBvdXRVOEFycmF5W291dElkeCsrXSA9IDEyOCB8IHUgPj4gNiAmIDYzOwogICAgICAgICAgICAgICAgb3V0VThBcnJheVtvdXRJZHgrK10gPSAxMjggfCB1ICYgNjMKICAgICAgICAgICAgfSBlbHNlIGlmICh1IDw9IDY3MTA4ODYzKSB7CiAgICAgICAgICAgICAgICBpZiAob3V0SWR4ICsgNCA+PSBlbmRJZHgpIGJyZWFrOwogICAgICAgICAgICAgICAgb3V0VThBcnJheVtvdXRJZHgrK10gPSAyNDggfCB1ID4+IDI0OwogICAgICAgICAgICAgICAgb3V0VThBcnJheVtvdXRJZHgrK10gPSAxMjggfCB1ID4+IDE4ICYgNjM7CiAgICAgICAgICAgICAgICBvdXRVOEFycmF5W291dElkeCsrXSA9IDEyOCB8IHUgPj4gMTIgJiA2MzsKICAgICAgICAgICAgICAgIG91dFU4QXJyYXlbb3V0SWR4KytdID0gMTI4IHwgdSA+PiA2ICYgNjM7CiAgICAgICAgICAgICAgICBvdXRVOEFycmF5W291dElkeCsrXSA9IDEyOCB8IHUgJiA2MwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKG91dElkeCArIDUgPj0gZW5kSWR4KSBicmVhazsKICAgICAgICAgICAgICAgIG91dFU4QXJyYXlbb3V0SWR4KytdID0gMjUyIHwgdSA+PiAzMDsKICAgICAgICAgICAgICAgIG91dFU4QXJyYXlbb3V0SWR4KytdID0gMTI4IHwgdSA+PiAyNCAmIDYzOwogICAgICAgICAgICAgICAgb3V0VThBcnJheVtvdXRJZHgrK10gPSAxMjggfCB1ID4+IDE4ICYgNjM7CiAgICAgICAgICAgICAgICBvdXRVOEFycmF5W291dElkeCsrXSA9IDEyOCB8IHUgPj4gMTIgJiA2MzsKICAgICAgICAgICAgICAgIG91dFU4QXJyYXlbb3V0SWR4KytdID0gMTI4IHwgdSA+PiA2ICYgNjM7CiAgICAgICAgICAgICAgICBvdXRVOEFycmF5W291dElkeCsrXSA9IDEyOCB8IHUgJiA2MwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG91dFU4QXJyYXlbb3V0SWR4XSA9IDA7CiAgICAgICAgcmV0dXJuIG91dElkeCAtIHN0YXJ0SWR4CiAgICB9CgogICAgZnVuY3Rpb24gc3RyaW5nVG9VVEY4KHN0ciwgb3V0UHRyLCBtYXhCeXRlc1RvV3JpdGUpIHsKICAgICAgICByZXR1cm4gc3RyaW5nVG9VVEY4QXJyYXkoc3RyLCBIRUFQVTgsIG91dFB0ciwgbWF4Qnl0ZXNUb1dyaXRlKQogICAgfQoKICAgIGZ1bmN0aW9uIGxlbmd0aEJ5dGVzVVRGOChzdHIpIHsKICAgICAgICB2YXIgbGVuID0gMDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkgewogICAgICAgICAgICB2YXIgdSA9IHN0ci5jaGFyQ29kZUF0KGkpOwogICAgICAgICAgICBpZiAodSA+PSA1NTI5NiAmJiB1IDw9IDU3MzQzKSB1ID0gNjU1MzYgKyAoKHUgJiAxMDIzKSA8PCAxMCkgfCBzdHIuY2hhckNvZGVBdCgrK2kpICYgMTAyMzsKICAgICAgICAgICAgaWYgKHUgPD0gMTI3KSB7CiAgICAgICAgICAgICAgICArK2xlbgogICAgICAgICAgICB9IGVsc2UgaWYgKHUgPD0gMjA0NykgewogICAgICAgICAgICAgICAgbGVuICs9IDIKICAgICAgICAgICAgfSBlbHNlIGlmICh1IDw9IDY1NTM1KSB7CiAgICAgICAgICAgICAgICBsZW4gKz0gMwogICAgICAgICAgICB9IGVsc2UgaWYgKHUgPD0gMjA5NzE1MSkgewogICAgICAgICAgICAgICAgbGVuICs9IDQKICAgICAgICAgICAgfSBlbHNlIGlmICh1IDw9IDY3MTA4ODYzKSB7CiAgICAgICAgICAgICAgICBsZW4gKz0gNQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbGVuICs9IDYKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbGVuCiAgICB9CiAgICB2YXIgVVRGMTZEZWNvZGVyID0gdHlwZW9mIFRleHREZWNvZGVyICE9PSAidW5kZWZpbmVkIiA/IG5ldyBUZXh0RGVjb2RlcigidXRmLTE2bGUiKSA6IHVuZGVmaW5lZDsKCiAgICBmdW5jdGlvbiBhbGxvY2F0ZVVURjgoc3RyKSB7CiAgICAgICAgdmFyIHNpemUgPSBsZW5ndGhCeXRlc1VURjgoc3RyKSArIDE7CiAgICAgICAgdmFyIHJldCA9IF9tYWxsb2Moc2l6ZSk7CiAgICAgICAgaWYgKHJldCkgc3RyaW5nVG9VVEY4QXJyYXkoc3RyLCBIRUFQOCwgcmV0LCBzaXplKTsKICAgICAgICByZXR1cm4gcmV0CiAgICB9CgogICAgZnVuY3Rpb24gYWxsb2NhdGVVVEY4T25TdGFjayhzdHIpIHsKICAgICAgICB2YXIgc2l6ZSA9IGxlbmd0aEJ5dGVzVVRGOChzdHIpICsgMTsKICAgICAgICB2YXIgcmV0ID0gc3RhY2tBbGxvYyhzaXplKTsKICAgICAgICBzdHJpbmdUb1VURjhBcnJheShzdHIsIEhFQVA4LCByZXQsIHNpemUpOwogICAgICAgIHJldHVybiByZXQKICAgIH0KCiAgICBmdW5jdGlvbiBkZW1hbmdsZShmdW5jKSB7CiAgICAgICAgcmV0dXJuIGZ1bmMKICAgIH0KCiAgICBmdW5jdGlvbiBkZW1hbmdsZUFsbCh0ZXh0KSB7CiAgICAgICAgdmFyIHJlZ2V4ID0gL19fWltcd1xkX10rL2c7CiAgICAgICAgcmV0dXJuIHRleHQucmVwbGFjZShyZWdleCwgKGZ1bmN0aW9uKHgpIHsKICAgICAgICAgICAgdmFyIHkgPSBkZW1hbmdsZSh4KTsKICAgICAgICAgICAgcmV0dXJuIHggPT09IHkgPyB4IDogeCArICIgWyIgKyB5ICsgIl0iCiAgICAgICAgfSkpCiAgICB9CgogICAgZnVuY3Rpb24ganNTdGFja1RyYWNlKCkgewogICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3I7CiAgICAgICAgaWYgKCFlcnIuc3RhY2spIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigwKQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICBlcnIgPSBlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFlcnIuc3RhY2spIHsKICAgICAgICAgICAgICAgIHJldHVybiAiKG5vIHN0YWNrIHRyYWNlIGF2YWlsYWJsZSkiCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGVyci5zdGFjay50b1N0cmluZygpCiAgICB9CgogICAgZnVuY3Rpb24gc3RhY2tUcmFjZSgpIHsKICAgICAgICB2YXIganMgPSBqc1N0YWNrVHJhY2UoKTsKICAgICAgICBpZiAoTW9kdWxlWyJleHRyYVN0YWNrVHJhY2UiXSkganMgKz0gIlxuIiArIE1vZHVsZVsiZXh0cmFTdGFja1RyYWNlIl0oKTsKICAgICAgICByZXR1cm4gZGVtYW5nbGVBbGwoanMpCiAgICB9CiAgICB2YXIgUEFHRV9TSVpFID0gMTYzODQ7CiAgICB2YXIgV0FTTV9QQUdFX1NJWkUgPSA2NTUzNjsKICAgIHZhciBBU01KU19QQUdFX1NJWkUgPSAxNjc3NzIxNjsKICAgIHZhciBNSU5fVE9UQUxfTUVNT1JZID0gMTY3NzcyMTY7CgogICAgZnVuY3Rpb24gYWxpZ25VcCh4LCBtdWx0aXBsZSkgewogICAgICAgIGlmICh4ICUgbXVsdGlwbGUgPiAwKSB7CiAgICAgICAgICAgIHggKz0gbXVsdGlwbGUgLSB4ICUgbXVsdGlwbGUKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHgKICAgIH0KICAgIHZhciBidWZmZXIsIEhFQVA4LCBIRUFQVTgsIEhFQVAxNiwgSEVBUFUxNiwgSEVBUDMyLCBIRUFQVTMyLCBIRUFQRjMyLCBIRUFQRjY0OwoKICAgIGZ1bmN0aW9uIHVwZGF0ZUdsb2JhbEJ1ZmZlcihidWYpIHsKICAgICAgICBNb2R1bGVbImJ1ZmZlciJdID0gYnVmZmVyID0gYnVmCiAgICB9CgogICAgZnVuY3Rpb24gdXBkYXRlR2xvYmFsQnVmZmVyVmlld3MoKSB7CiAgICAgICAgTW9kdWxlWyJIRUFQOCJdID0gSEVBUDggPSBuZXcgSW50OEFycmF5KGJ1ZmZlcik7CiAgICAgICAgTW9kdWxlWyJIRUFQMTYiXSA9IEhFQVAxNiA9IG5ldyBJbnQxNkFycmF5KGJ1ZmZlcik7CiAgICAgICAgTW9kdWxlWyJIRUFQMzIiXSA9IEhFQVAzMiA9IG5ldyBJbnQzMkFycmF5KGJ1ZmZlcik7CiAgICAgICAgTW9kdWxlWyJIRUFQVTgiXSA9IEhFQVBVOCA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7CiAgICAgICAgTW9kdWxlWyJIRUFQVTE2Il0gPSBIRUFQVTE2ID0gbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7CiAgICAgICAgTW9kdWxlWyJIRUFQVTMyIl0gPSBIRUFQVTMyID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlcik7CiAgICAgICAgTW9kdWxlWyJIRUFQRjMyIl0gPSBIRUFQRjMyID0gbmV3IEZsb2F0MzJBcnJheShidWZmZXIpOwogICAgICAgIE1vZHVsZVsiSEVBUEY2NCJdID0gSEVBUEY2NCA9IG5ldyBGbG9hdDY0QXJyYXkoYnVmZmVyKQogICAgfQogICAgdmFyIFNUQVRJQ19CQVNFLCBTVEFUSUNUT1AsIHN0YXRpY1NlYWxlZDsKICAgIHZhciBTVEFDS19CQVNFLCBTVEFDS1RPUCwgU1RBQ0tfTUFYOwogICAgdmFyIERZTkFNSUNfQkFTRSwgRFlOQU1JQ1RPUF9QVFI7CiAgICBTVEFUSUNfQkFTRSA9IFNUQVRJQ1RPUCA9IFNUQUNLX0JBU0UgPSBTVEFDS1RPUCA9IFNUQUNLX01BWCA9IERZTkFNSUNfQkFTRSA9IERZTkFNSUNUT1BfUFRSID0gMDsKICAgIHN0YXRpY1NlYWxlZCA9IGZhbHNlOwoKICAgIGZ1bmN0aW9uIGFib3J0T25DYW5ub3RHcm93TWVtb3J5KCkgewogICAgICAgIGFib3J0KCJDYW5ub3QgZW5sYXJnZSBtZW1vcnkgYXJyYXlzLiBFaXRoZXIgKDEpIGNvbXBpbGUgd2l0aCAgLXMgVE9UQUxfTUVNT1JZPVggIHdpdGggWCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSAiICsgVE9UQUxfTUVNT1JZICsgIiwgKDIpIGNvbXBpbGUgd2l0aCAgLXMgQUxMT1dfTUVNT1JZX0dST1dUSD0xICB3aGljaCBhbGxvd3MgaW5jcmVhc2luZyB0aGUgc2l6ZSBhdCBydW50aW1lLCBvciAoMykgaWYgeW91IHdhbnQgbWFsbG9jIHRvIHJldHVybiBOVUxMICgwKSBpbnN0ZWFkIG9mIHRoaXMgYWJvcnQsIGNvbXBpbGUgd2l0aCAgLXMgQUJPUlRJTkdfTUFMTE9DPTAgIikKICAgIH0KICAgIGlmICghTW9kdWxlWyJyZWFsbG9jQnVmZmVyIl0pIE1vZHVsZVsicmVhbGxvY0J1ZmZlciJdID0gKGZ1bmN0aW9uKHNpemUpIHsKICAgICAgICB2YXIgcmV0OwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmIChBcnJheUJ1ZmZlci50cmFuc2ZlcikgewogICAgICAgICAgICAgICAgcmV0ID0gQXJyYXlCdWZmZXIudHJhbnNmZXIoYnVmZmVyLCBzaXplKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFyIG9sZEhFQVA4ID0gSEVBUDg7CiAgICAgICAgICAgICAgICByZXQgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CiAgICAgICAgICAgICAgICB2YXIgdGVtcCA9IG5ldyBJbnQ4QXJyYXkocmV0KTsKICAgICAgICAgICAgICAgIHRlbXAuc2V0KG9sZEhFQVA4KQogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICB9CiAgICAgICAgdmFyIHN1Y2Nlc3MgPSBfZW1zY3JpcHRlbl9yZXBsYWNlX21lbW9yeShyZXQpOwogICAgICAgIGlmICghc3VjY2VzcykgcmV0dXJuIGZhbHNlOwogICAgICAgIHJldHVybiByZXQKICAgIH0pOwoKICAgIGZ1bmN0aW9uIGVubGFyZ2VNZW1vcnkoKSB7CiAgICAgICAgdmFyIFBBR0VfTVVMVElQTEUgPSBNb2R1bGVbInVzaW5nV2FzbSJdID8gV0FTTV9QQUdFX1NJWkUgOiBBU01KU19QQUdFX1NJWkU7CiAgICAgICAgdmFyIExJTUlUID0gMjE0NzQ4MzY0OCAtIFBBR0VfTVVMVElQTEU7CiAgICAgICAgaWYgKEhFQVAzMltEWU5BTUlDVE9QX1BUUiA+PiAyXSA+IExJTUlUKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgIH0KICAgICAgICB2YXIgT0xEX1RPVEFMX01FTU9SWSA9IFRPVEFMX01FTU9SWTsKICAgICAgICBUT1RBTF9NRU1PUlkgPSBNYXRoLm1heChUT1RBTF9NRU1PUlksIE1JTl9UT1RBTF9NRU1PUlkpOwogICAgICAgIHdoaWxlIChUT1RBTF9NRU1PUlkgPCBIRUFQMzJbRFlOQU1JQ1RPUF9QVFIgPj4gMl0pIHsKICAgICAgICAgICAgaWYgKFRPVEFMX01FTU9SWSA8PSA1MzY4NzA5MTIpIHsKICAgICAgICAgICAgICAgIFRPVEFMX01FTU9SWSA9IGFsaWduVXAoMiAqIFRPVEFMX01FTU9SWSwgUEFHRV9NVUxUSVBMRSkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIFRPVEFMX01FTU9SWSA9IE1hdGgubWluKGFsaWduVXAoKDMgKiBUT1RBTF9NRU1PUlkgKyAyMTQ3NDgzNjQ4KSAvIDQsIFBBR0VfTVVMVElQTEUpLCBMSU1JVCkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB2YXIgcmVwbGFjZW1lbnQgPSBNb2R1bGVbInJlYWxsb2NCdWZmZXIiXShUT1RBTF9NRU1PUlkpOwogICAgICAgIGlmICghcmVwbGFjZW1lbnQgfHwgcmVwbGFjZW1lbnQuYnl0ZUxlbmd0aCAhPSBUT1RBTF9NRU1PUlkpIHsKICAgICAgICAgICAgVE9UQUxfTUVNT1JZID0gT0xEX1RPVEFMX01FTU9SWTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgfQogICAgICAgIHVwZGF0ZUdsb2JhbEJ1ZmZlcihyZXBsYWNlbWVudCk7CiAgICAgICAgdXBkYXRlR2xvYmFsQnVmZmVyVmlld3MoKTsKICAgICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgdmFyIGJ5dGVMZW5ndGg7CiAgICB0cnkgewogICAgICAgIGJ5dGVMZW5ndGggPSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbC5iaW5kKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQXJyYXlCdWZmZXIucHJvdG90eXBlLCAiYnl0ZUxlbmd0aCIpLmdldCk7CiAgICAgICAgYnl0ZUxlbmd0aChuZXcgQXJyYXlCdWZmZXIoNCkpCiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgYnl0ZUxlbmd0aCA9IChmdW5jdGlvbihidWZmZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5ieXRlTGVuZ3RoCiAgICAgICAgfSkKICAgIH0KICAgIHZhciBUT1RBTF9TVEFDSyA9IE1vZHVsZVsiVE9UQUxfU1RBQ0siXSB8fCA1MjQyODgwOwogICAgdmFyIFRPVEFMX01FTU9SWSA9IE1vZHVsZVsiVE9UQUxfTUVNT1JZIl0gfHwgMjY4NDM1NDU2OwogICAgaWYgKFRPVEFMX01FTU9SWSA8IFRPVEFMX1NUQUNLKSBNb2R1bGUucHJpbnRFcnIoIlRPVEFMX01FTU9SWSBzaG91bGQgYmUgbGFyZ2VyIHRoYW4gVE9UQUxfU1RBQ0ssIHdhcyAiICsgVE9UQUxfTUVNT1JZICsgIiEgKFRPVEFMX1NUQUNLPSIgKyBUT1RBTF9TVEFDSyArICIpIik7CiAgICBpZiAoTW9kdWxlWyJidWZmZXIiXSkgewogICAgICAgIGJ1ZmZlciA9IE1vZHVsZVsiYnVmZmVyIl0KICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHR5cGVvZiBXZWJBc3NlbWJseSA9PT0gIm9iamVjdCIgJiYgdHlwZW9mIFdlYkFzc2VtYmx5Lk1lbW9yeSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICBNb2R1bGVbIndhc21NZW1vcnkiXSA9IG5ldyBXZWJBc3NlbWJseS5NZW1vcnkoewogICAgICAgICAgICAgICAgImluaXRpYWwiOiBUT1RBTF9NRU1PUlkgLyBXQVNNX1BBR0VfU0laRQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgYnVmZmVyID0gTW9kdWxlWyJ3YXNtTWVtb3J5Il0uYnVmZmVyCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKFRPVEFMX01FTU9SWSkKICAgICAgICB9CiAgICAgICAgTW9kdWxlWyJidWZmZXIiXSA9IGJ1ZmZlcgogICAgfQogICAgdXBkYXRlR2xvYmFsQnVmZmVyVmlld3MoKTsKCiAgICBmdW5jdGlvbiBnZXRUb3RhbE1lbW9yeSgpIHsKICAgICAgICByZXR1cm4gVE9UQUxfTUVNT1JZCiAgICB9CiAgICBIRUFQMzJbMF0gPSAxNjY4NTA5MDI5OwogICAgSEVBUDE2WzFdID0gMjU0NTk7CiAgICBpZiAoSEVBUFU4WzJdICE9PSAxMTUgfHwgSEVBUFU4WzNdICE9PSA5OSkgdGhyb3cgIlJ1bnRpbWUgZXJyb3I6IGV4cGVjdGVkIHRoZSBzeXN0ZW0gdG8gYmUgbGl0dGxlLWVuZGlhbiEiOwoKICAgIGZ1bmN0aW9uIGNhbGxSdW50aW1lQ2FsbGJhY2tzKGNhbGxiYWNrcykgewogICAgICAgIHdoaWxlIChjYWxsYmFja3MubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBjYWxsYmFja3Muc2hpZnQoKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgZnVuYyA9IGNhbGxiYWNrLmZ1bmM7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gIm51bWJlciIpIHsKICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjay5hcmcgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92Il0oZnVuYykKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpIl0oZnVuYywgY2FsbGJhY2suYXJnKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZnVuYyhjYWxsYmFjay5hcmcgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBjYWxsYmFjay5hcmcpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICB2YXIgX19BVFBSRVJVTl9fID0gW107CiAgICB2YXIgX19BVElOSVRfXyA9IFtdOwogICAgdmFyIF9fQVRNQUlOX18gPSBbXTsKICAgIHZhciBfX0FURVhJVF9fID0gW107CiAgICB2YXIgX19BVFBPU1RSVU5fXyA9IFtdOwogICAgdmFyIHJ1bnRpbWVJbml0aWFsaXplZCA9IGZhbHNlOwogICAgdmFyIHJ1bnRpbWVFeGl0ZWQgPSBmYWxzZTsKCiAgICBmdW5jdGlvbiBwcmVSdW4oKSB7CiAgICAgICAgaWYgKE1vZHVsZVsicHJlUnVuIl0pIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBNb2R1bGVbInByZVJ1biJdID09ICJmdW5jdGlvbiIpIE1vZHVsZVsicHJlUnVuIl0gPSBbTW9kdWxlWyJwcmVSdW4iXV07CiAgICAgICAgICAgIHdoaWxlIChNb2R1bGVbInByZVJ1biJdLmxlbmd0aCkgewogICAgICAgICAgICAgICAgYWRkT25QcmVSdW4oTW9kdWxlWyJwcmVSdW4iXS5zaGlmdCgpKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQUkVSVU5fXykKICAgIH0KCiAgICBmdW5jdGlvbiBlbnN1cmVJbml0UnVudGltZSgpIHsKICAgICAgICBpZiAocnVudGltZUluaXRpYWxpemVkKSByZXR1cm47CiAgICAgICAgcnVudGltZUluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUSU5JVF9fKQogICAgfQoKICAgIGZ1bmN0aW9uIHByZU1haW4oKSB7CiAgICAgICAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVE1BSU5fXykKICAgIH0KCiAgICBmdW5jdGlvbiBleGl0UnVudGltZSgpIHsKICAgICAgICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FURVhJVF9fKTsKICAgICAgICBydW50aW1lRXhpdGVkID0gdHJ1ZQogICAgfQoKICAgIGZ1bmN0aW9uIHBvc3RSdW4oKSB7CiAgICAgICAgaWYgKE1vZHVsZVsicG9zdFJ1biJdKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgTW9kdWxlWyJwb3N0UnVuIl0gPT0gImZ1bmN0aW9uIikgTW9kdWxlWyJwb3N0UnVuIl0gPSBbTW9kdWxlWyJwb3N0UnVuIl1dOwogICAgICAgICAgICB3aGlsZSAoTW9kdWxlWyJwb3N0UnVuIl0ubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBhZGRPblBvc3RSdW4oTW9kdWxlWyJwb3N0UnVuIl0uc2hpZnQoKSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUUE9TVFJVTl9fKQogICAgfQoKICAgIGZ1bmN0aW9uIGFkZE9uUHJlUnVuKGNiKSB7CiAgICAgICAgX19BVFBSRVJVTl9fLnVuc2hpZnQoY2IpCiAgICB9CgogICAgZnVuY3Rpb24gYWRkT25Qb3N0UnVuKGNiKSB7CiAgICAgICAgX19BVFBPU1RSVU5fXy51bnNoaWZ0KGNiKQogICAgfQoKICAgIGZ1bmN0aW9uIHdyaXRlQXJyYXlUb01lbW9yeShhcnJheSwgYnVmZmVyKSB7CiAgICAgICAgSEVBUDguc2V0KGFycmF5LCBidWZmZXIpCiAgICB9CgogICAgZnVuY3Rpb24gd3JpdGVBc2NpaVRvTWVtb3J5KHN0ciwgYnVmZmVyLCBkb250QWRkTnVsbCkgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgIEhFQVA4W2J1ZmZlcisrID4+IDBdID0gc3RyLmNoYXJDb2RlQXQoaSkKICAgICAgICB9CiAgICAgICAgaWYgKCFkb250QWRkTnVsbCkgSEVBUDhbYnVmZmVyID4+IDBdID0gMAogICAgfQoKICAgIGZ1bmN0aW9uIHVuU2lnbih2YWx1ZSwgYml0cywgaWdub3JlKSB7CiAgICAgICAgaWYgKHZhbHVlID49IDApIHsKICAgICAgICAgICAgcmV0dXJuIHZhbHVlCiAgICAgICAgfQogICAgICAgIHJldHVybiBiaXRzIDw9IDMyID8gMiAqIE1hdGguYWJzKDEgPDwgYml0cyAtIDEpICsgdmFsdWUgOiBNYXRoLnBvdygyLCBiaXRzKSArIHZhbHVlCiAgICB9CgogICAgZnVuY3Rpb24gcmVTaWduKHZhbHVlLCBiaXRzLCBpZ25vcmUpIHsKICAgICAgICBpZiAodmFsdWUgPD0gMCkgewogICAgICAgICAgICByZXR1cm4gdmFsdWUKICAgICAgICB9CiAgICAgICAgdmFyIGhhbGYgPSBiaXRzIDw9IDMyID8gTWF0aC5hYnMoMSA8PCBiaXRzIC0gMSkgOiBNYXRoLnBvdygyLCBiaXRzIC0gMSk7CiAgICAgICAgaWYgKHZhbHVlID49IGhhbGYgJiYgKGJpdHMgPD0gMzIgfHwgdmFsdWUgPiBoYWxmKSkgewogICAgICAgICAgICB2YWx1ZSA9IC0yICogaGFsZiArIHZhbHVlCiAgICAgICAgfQogICAgICAgIHJldHVybiB2YWx1ZQogICAgfQogICAgdmFyIE1hdGhfYWJzID0gTWF0aC5hYnM7CiAgICB2YXIgTWF0aF9jb3MgPSBNYXRoLmNvczsKICAgIHZhciBNYXRoX3NpbiA9IE1hdGguc2luOwogICAgdmFyIE1hdGhfdGFuID0gTWF0aC50YW47CiAgICB2YXIgTWF0aF9hY29zID0gTWF0aC5hY29zOwogICAgdmFyIE1hdGhfYXNpbiA9IE1hdGguYXNpbjsKICAgIHZhciBNYXRoX2F0YW4gPSBNYXRoLmF0YW47CiAgICB2YXIgTWF0aF9hdGFuMiA9IE1hdGguYXRhbjI7CiAgICB2YXIgTWF0aF9leHAgPSBNYXRoLmV4cDsKICAgIHZhciBNYXRoX2xvZyA9IE1hdGgubG9nOwogICAgdmFyIE1hdGhfc3FydCA9IE1hdGguc3FydDsKICAgIHZhciBNYXRoX2NlaWwgPSBNYXRoLmNlaWw7CiAgICB2YXIgTWF0aF9mbG9vciA9IE1hdGguZmxvb3I7CiAgICB2YXIgTWF0aF9wb3cgPSBNYXRoLnBvdzsKICAgIHZhciBNYXRoX2ltdWwgPSBNYXRoLmltdWw7CiAgICB2YXIgTWF0aF9mcm91bmQgPSBNYXRoLmZyb3VuZDsKICAgIHZhciBNYXRoX3JvdW5kID0gTWF0aC5yb3VuZDsKICAgIHZhciBNYXRoX21pbiA9IE1hdGgubWluOwogICAgdmFyIE1hdGhfbWF4ID0gTWF0aC5tYXg7CiAgICB2YXIgTWF0aF9jbHozMiA9IE1hdGguY2x6MzI7CiAgICB2YXIgTWF0aF90cnVuYyA9IE1hdGgudHJ1bmM7CiAgICB2YXIgcnVuRGVwZW5kZW5jaWVzID0gMDsKICAgIHZhciBydW5EZXBlbmRlbmN5V2F0Y2hlciA9IG51bGw7CiAgICB2YXIgZGVwZW5kZW5jaWVzRnVsZmlsbGVkID0gbnVsbDsKCiAgICBmdW5jdGlvbiBnZXRVbmlxdWVSdW5EZXBlbmRlbmN5KGlkKSB7CiAgICAgICAgcmV0dXJuIGlkCiAgICB9CgogICAgZnVuY3Rpb24gYWRkUnVuRGVwZW5kZW5jeShpZCkgewogICAgICAgIHJ1bkRlcGVuZGVuY2llcysrOwogICAgICAgIGlmIChNb2R1bGVbIm1vbml0b3JSdW5EZXBlbmRlbmNpZXMiXSkgewogICAgICAgICAgICBNb2R1bGVbIm1vbml0b3JSdW5EZXBlbmRlbmNpZXMiXShydW5EZXBlbmRlbmNpZXMpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIHJlbW92ZVJ1bkRlcGVuZGVuY3koaWQpIHsKICAgICAgICBydW5EZXBlbmRlbmNpZXMtLTsKICAgICAgICBpZiAoTW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0pIHsKICAgICAgICAgICAgTW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0ocnVuRGVwZW5kZW5jaWVzKQogICAgICAgIH0KICAgICAgICBpZiAocnVuRGVwZW5kZW5jaWVzID09IDApIHsKICAgICAgICAgICAgaWYgKHJ1bkRlcGVuZGVuY3lXYXRjaGVyICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHJ1bkRlcGVuZGVuY3lXYXRjaGVyKTsKICAgICAgICAgICAgICAgIHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0gbnVsbAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkZXBlbmRlbmNpZXNGdWxmaWxsZWQpIHsKICAgICAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGRlcGVuZGVuY2llc0Z1bGZpbGxlZDsKICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc0Z1bGZpbGxlZCA9IG51bGw7CiAgICAgICAgICAgICAgICBjYWxsYmFjaygpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBNb2R1bGVbInByZWxvYWRlZEltYWdlcyJdID0ge307CiAgICBNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdID0ge307CiAgICB2YXIgZGF0YVVSSVByZWZpeCA9ICJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsIjsKCiAgICBmdW5jdGlvbiBpc0RhdGFVUkkoZmlsZW5hbWUpIHsKICAgICAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoID8gZmlsZW5hbWUuc3RhcnRzV2l0aChkYXRhVVJJUHJlZml4KSA6IGZpbGVuYW1lLmluZGV4T2YoZGF0YVVSSVByZWZpeCkgPT09IDAKICAgIH0KCiAgICBmdW5jdGlvbiBpbnRlZ3JhdGVXYXNtSlMoKSB7CiAgICAgICAgdmFyIHdhc21UZXh0RmlsZSA9ICJidWlsZC53YXN0IjsKICAgICAgICB2YXIgd2FzbUJpbmFyeUZpbGUgPSAiYnVpbGQud2FzbSI7CiAgICAgICAgdmFyIGFzbWpzQ29kZUZpbGUgPSAiYnVpbGQudGVtcC5hc20uanMiOwogICAgICAgIGlmICh0eXBlb2YgTW9kdWxlWyJsb2NhdGVGaWxlIl0gPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgaWYgKCFpc0RhdGFVUkkod2FzbVRleHRGaWxlKSkgewogICAgICAgICAgICAgICAgd2FzbVRleHRGaWxlID0gTW9kdWxlWyJsb2NhdGVGaWxlIl0od2FzbVRleHRGaWxlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghaXNEYXRhVVJJKHdhc21CaW5hcnlGaWxlKSkgewogICAgICAgICAgICAgICAgd2FzbUJpbmFyeUZpbGUgPSBNb2R1bGVbImxvY2F0ZUZpbGUiXSh3YXNtQmluYXJ5RmlsZSkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWlzRGF0YVVSSShhc21qc0NvZGVGaWxlKSkgewogICAgICAgICAgICAgICAgYXNtanNDb2RlRmlsZSA9IE1vZHVsZVsibG9jYXRlRmlsZSJdKGFzbWpzQ29kZUZpbGUpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdmFyIHdhc21QYWdlU2l6ZSA9IDY0ICogMTAyNDsKICAgICAgICB2YXIgaW5mbyA9IHsKICAgICAgICAgICAgImdsb2JhbCI6IG51bGwsCiAgICAgICAgICAgICJlbnYiOiBudWxsLAogICAgICAgICAgICAiYXNtMndhc20iOiB7CiAgICAgICAgICAgICAgICAiZjY0LXJlbSI6IChmdW5jdGlvbih4LCB5KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHggJSB5CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICJkZWJ1Z2dlciI6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBkZWJ1Z2dlcgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInBhcmVudCI6IE1vZHVsZQogICAgICAgIH07CiAgICAgICAgdmFyIGV4cG9ydHMgPSBudWxsOwoKICAgICAgICBmdW5jdGlvbiBtZXJnZU1lbW9yeShuZXdCdWZmZXIpIHsKICAgICAgICAgICAgdmFyIG9sZEJ1ZmZlciA9IE1vZHVsZVsiYnVmZmVyIl07CiAgICAgICAgICAgIGlmIChuZXdCdWZmZXIuYnl0ZUxlbmd0aCA8IG9sZEJ1ZmZlci5ieXRlTGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBNb2R1bGVbInByaW50RXJyIl0oInRoZSBuZXcgYnVmZmVyIGluIG1lcmdlTWVtb3J5IGlzIHNtYWxsZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lLiBpbiBuYXRpdmUgd2FzbSwgd2Ugc2hvdWxkIGdyb3cgbWVtb3J5IGhlcmUiKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBvbGRWaWV3ID0gbmV3IEludDhBcnJheShvbGRCdWZmZXIpOwogICAgICAgICAgICB2YXIgbmV3VmlldyA9IG5ldyBJbnQ4QXJyYXkobmV3QnVmZmVyKTsKICAgICAgICAgICAgbmV3Vmlldy5zZXQob2xkVmlldyk7CiAgICAgICAgICAgIHVwZGF0ZUdsb2JhbEJ1ZmZlcihuZXdCdWZmZXIpOwogICAgICAgICAgICB1cGRhdGVHbG9iYWxCdWZmZXJWaWV3cygpCiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBmaXhJbXBvcnRzKGltcG9ydHMpIHsKICAgICAgICAgICAgcmV0dXJuIGltcG9ydHMKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGdldEJpbmFyeSgpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmIChNb2R1bGVbIndhc21CaW5hcnkiXSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShNb2R1bGVbIndhc21CaW5hcnkiXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChNb2R1bGVbInJlYWRCaW5hcnkiXSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBNb2R1bGVbInJlYWRCaW5hcnkiXSh3YXNtQmluYXJ5RmlsZSkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgIm9uIHRoZSB3ZWIsIHdlIG5lZWQgdGhlIHdhc20gYmluYXJ5IHRvIGJlIHByZWxvYWRlZCBhbmQgc2V0IG9uIE1vZHVsZVsnd2FzbUJpbmFyeSddLiBlbWNjLnB5IHdpbGwgZG8gdGhhdCBmb3IgeW91IHdoZW4gZ2VuZXJhdGluZyBIVE1MIChidXQgbm90IEpTKSIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICBhYm9ydChlcnIpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGdldEJpbmFyeVByb21pc2UoKSB7CiAgICAgICAgICAgIGlmICghTW9kdWxlWyJ3YXNtQmluYXJ5Il0gJiYgKEVOVklST05NRU5UX0lTX1dFQiB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpICYmIHR5cGVvZiBmZXRjaCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoKHdhc21CaW5hcnlGaWxlLCB7CiAgICAgICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6ICJzYW1lLW9yaWdpbiIKICAgICAgICAgICAgICAgIH0pLnRoZW4oKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZVsib2siXSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyAiZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIiArIHdhc21CaW5hcnlGaWxlICsgIiciCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZVsiYXJyYXlCdWZmZXIiXSgpCiAgICAgICAgICAgICAgICB9KSkuY2F0Y2goKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRCaW5hcnkoKQogICAgICAgICAgICAgICAgfSkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgICAgIHJlc29sdmUoZ2V0QmluYXJ5KCkpCiAgICAgICAgICAgIH0pKQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZG9OYXRpdmVXYXNtKGdsb2JhbCwgZW52LCBwcm92aWRlZEJ1ZmZlcikgewogICAgICAgICAgICBpZiAodHlwZW9mIFdlYkFzc2VtYmx5ICE9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgTW9kdWxlWyJwcmludEVyciJdKCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIik7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIShNb2R1bGVbIndhc21NZW1vcnkiXSBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lk1lbW9yeSkpIHsKICAgICAgICAgICAgICAgIE1vZHVsZVsicHJpbnRFcnIiXSgibm8gbmF0aXZlIHdhc20gTWVtb3J5IGluIHVzZSIpOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZW52WyJtZW1vcnkiXSA9IE1vZHVsZVsid2FzbU1lbW9yeSJdOwogICAgICAgICAgICBpbmZvWyJnbG9iYWwiXSA9IHsKICAgICAgICAgICAgICAgICJOYU4iOiBOYU4sCiAgICAgICAgICAgICAgICAiSW5maW5pdHkiOiBJbmZpbml0eQogICAgICAgICAgICB9OwogICAgICAgICAgICBpbmZvWyJnbG9iYWwuTWF0aCJdID0gTWF0aDsKICAgICAgICAgICAgaW5mb1siZW52Il0gPSBlbnY7CgogICAgICAgICAgICBmdW5jdGlvbiByZWNlaXZlSW5zdGFuY2UoaW5zdGFuY2UsIG1vZHVsZSkgewogICAgICAgICAgICAgICAgZXhwb3J0cyA9IGluc3RhbmNlLmV4cG9ydHM7CiAgICAgICAgICAgICAgICBpZiAoZXhwb3J0cy5tZW1vcnkpIG1lcmdlTWVtb3J5KGV4cG9ydHMubWVtb3J5KTsKICAgICAgICAgICAgICAgIE1vZHVsZVsiYXNtIl0gPSBleHBvcnRzOwogICAgICAgICAgICAgICAgTW9kdWxlWyJ1c2luZ1dhc20iXSA9IHRydWU7CiAgICAgICAgICAgICAgICByZW1vdmVSdW5EZXBlbmRlbmN5KCJ3YXNtLWluc3RhbnRpYXRlIikKICAgICAgICAgICAgfQogICAgICAgICAgICBhZGRSdW5EZXBlbmRlbmN5KCJ3YXNtLWluc3RhbnRpYXRlIik7CiAgICAgICAgICAgIGlmIChNb2R1bGVbImluc3RhbnRpYXRlV2FzbSJdKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImluc3RhbnRpYXRlV2FzbSJdKGluZm8sIHJlY2VpdmVJbnN0YW5jZSkKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICBNb2R1bGVbInByaW50RXJyIl0oIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIgKyBlKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZUluc3RhbnRpYXRlZFNvdXJjZShvdXRwdXQpIHsKICAgICAgICAgICAgICAgIHJlY2VpdmVJbnN0YW5jZShvdXRwdXRbImluc3RhbmNlIl0sIG91dHB1dFsibW9kdWxlIl0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbnRpYXRlQXJyYXlCdWZmZXIocmVjZWl2ZXIpIHsKICAgICAgICAgICAgICAgIGdldEJpbmFyeVByb21pc2UoKS50aGVuKChmdW5jdGlvbihiaW5hcnkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYmluYXJ5LCBpbmZvKQogICAgICAgICAgICAgICAgfSkpLnRoZW4ocmVjZWl2ZXIpLmNhdGNoKChmdW5jdGlvbihyZWFzb24pIHsKICAgICAgICAgICAgICAgICAgICBNb2R1bGVbInByaW50RXJyIl0oImZhaWxlZCB0byBhc3luY2hyb25vdXNseSBwcmVwYXJlIHdhc206ICIgKyByZWFzb24pOwogICAgICAgICAgICAgICAgICAgIGFib3J0KHJlYXNvbikKICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghTW9kdWxlWyJ3YXNtQmluYXJ5Il0gJiYgdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nID09PSAiZnVuY3Rpb24iICYmICFpc0RhdGFVUkkod2FzbUJpbmFyeUZpbGUpICYmIHR5cGVvZiBmZXRjaCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoZmV0Y2god2FzbUJpbmFyeUZpbGUsIHsKICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogInNhbWUtb3JpZ2luIgogICAgICAgICAgICAgICAgfSksIGluZm8pLnRoZW4ocmVjZWl2ZUluc3RhbnRpYXRlZFNvdXJjZSkuY2F0Y2goKGZ1bmN0aW9uKHJlYXNvbikgewogICAgICAgICAgICAgICAgICAgIE1vZHVsZVsicHJpbnRFcnIiXSgid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIgKyByZWFzb24pOwogICAgICAgICAgICAgICAgICAgIE1vZHVsZVsicHJpbnRFcnIiXSgiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKTsKICAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZUFycmF5QnVmZmVyKHJlY2VpdmVJbnN0YW50aWF0ZWRTb3VyY2UpCiAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGluc3RhbnRpYXRlQXJyYXlCdWZmZXIocmVjZWl2ZUluc3RhbnRpYXRlZFNvdXJjZSkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4ge30KICAgICAgICB9CiAgICAgICAgTW9kdWxlWyJhc21QcmVsb2FkIl0gPSBNb2R1bGVbImFzbSJdOwogICAgICAgIHZhciBhc21qc1JlYWxsb2NCdWZmZXIgPSBNb2R1bGVbInJlYWxsb2NCdWZmZXIiXTsKICAgICAgICB2YXIgd2FzbVJlYWxsb2NCdWZmZXIgPSAoZnVuY3Rpb24oc2l6ZSkgewogICAgICAgICAgICB2YXIgUEFHRV9NVUxUSVBMRSA9IE1vZHVsZVsidXNpbmdXYXNtIl0gPyBXQVNNX1BBR0VfU0laRSA6IEFTTUpTX1BBR0VfU0laRTsKICAgICAgICAgICAgc2l6ZSA9IGFsaWduVXAoc2l6ZSwgUEFHRV9NVUxUSVBMRSk7CiAgICAgICAgICAgIHZhciBvbGQgPSBNb2R1bGVbImJ1ZmZlciJdOwogICAgICAgICAgICB2YXIgb2xkU2l6ZSA9IG9sZC5ieXRlTGVuZ3RoOwogICAgICAgICAgICBpZiAoTW9kdWxlWyJ1c2luZ1dhc20iXSkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gTW9kdWxlWyJ3YXNtTWVtb3J5Il0uZ3Jvdygoc2l6ZSAtIG9sZFNpemUpIC8gd2FzbVBhZ2VTaXplKTsKICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSAoLTEgfCAwKSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJidWZmZXIiXSA9IE1vZHVsZVsid2FzbU1lbW9yeSJdLmJ1ZmZlcgogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBNb2R1bGVbInJlYWxsb2NCdWZmZXIiXSA9IChmdW5jdGlvbihzaXplKSB7CiAgICAgICAgICAgIGlmIChmaW5hbE1ldGhvZCA9PT0gImFzbWpzIikgewogICAgICAgICAgICAgICAgcmV0dXJuIGFzbWpzUmVhbGxvY0J1ZmZlcihzaXplKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIHdhc21SZWFsbG9jQnVmZmVyKHNpemUpCiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB2YXIgZmluYWxNZXRob2QgPSAiIjsKICAgICAgICBNb2R1bGVbImFzbSJdID0gKGZ1bmN0aW9uKGdsb2JhbCwgZW52LCBwcm92aWRlZEJ1ZmZlcikgewogICAgICAgICAgICBlbnYgPSBmaXhJbXBvcnRzKGVudik7CiAgICAgICAgICAgIGlmICghZW52WyJ0YWJsZSJdKSB7CiAgICAgICAgICAgICAgICB2YXIgVEFCTEVfU0laRSA9IE1vZHVsZVsid2FzbVRhYmxlU2l6ZSJdOwogICAgICAgICAgICAgICAgaWYgKFRBQkxFX1NJWkUgPT09IHVuZGVmaW5lZCkgVEFCTEVfU0laRSA9IDEwMjQ7CiAgICAgICAgICAgICAgICB2YXIgTUFYX1RBQkxFX1NJWkUgPSBNb2R1bGVbIndhc21NYXhUYWJsZVNpemUiXTsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgV2ViQXNzZW1ibHkgPT09ICJvYmplY3QiICYmIHR5cGVvZiBXZWJBc3NlbWJseS5UYWJsZSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgICAgIGlmIChNQVhfVEFCTEVfU0laRSAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVudlsidGFibGUiXSA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbCI6IFRBQkxFX1NJWkUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWF4aW11bSI6IE1BWF9UQUJMRV9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImVsZW1lbnQiOiAiYW55ZnVuYyIKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBlbnZbInRhYmxlIl0gPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImluaXRpYWwiOiBUQUJMRV9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImFueWZ1bmMiCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBlbnZbInRhYmxlIl0gPSBuZXcgQXJyYXkoVEFCTEVfU0laRSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIE1vZHVsZVsid2FzbVRhYmxlIl0gPSBlbnZbInRhYmxlIl0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWVudlsibWVtb3J5QmFzZSJdKSB7CiAgICAgICAgICAgICAgICBlbnZbIm1lbW9yeUJhc2UiXSA9IE1vZHVsZVsiU1RBVElDX0JBU0UiXQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghZW52WyJ0YWJsZUJhc2UiXSkgewogICAgICAgICAgICAgICAgZW52WyJ0YWJsZUJhc2UiXSA9IDAKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgZXhwb3J0czsKICAgICAgICAgICAgZXhwb3J0cyA9IGRvTmF0aXZlV2FzbShnbG9iYWwsIGVudiwgcHJvdmlkZWRCdWZmZXIpOwogICAgICAgICAgICBpZiAoIWV4cG9ydHMpIGFib3J0KCJubyBiaW5hcnllbiBtZXRob2Qgc3VjY2VlZGVkLiBjb25zaWRlciBlbmFibGluZyBtb3JlIG9wdGlvbnMsIGxpa2UgaW50ZXJwcmV0aW5nLCBpZiB5b3Ugd2FudCB0aGF0OiBodHRwczovL2dpdGh1Yi5jb20va3JpcGtlbi9lbXNjcmlwdGVuL3dpa2kvV2ViQXNzZW1ibHkjYmluYXJ5ZW4tbWV0aG9kcyIpOwogICAgICAgICAgICByZXR1cm4gZXhwb3J0cwogICAgICAgIH0pOwogICAgfQogICAgaW50ZWdyYXRlV2FzbUpTKCk7CiAgICBTVEFUSUNfQkFTRSA9IEdMT0JBTF9CQVNFOwogICAgU1RBVElDVE9QID0gU1RBVElDX0JBU0UgKyA0ODY3NjAwOwogICAgX19BVElOSVRfXy5wdXNoKHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9BY2Nlc3NpYmlsaXR5U2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX19jeHhfZ2xvYmFsX3Zhcl9pbml0KCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0FJU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfQW5pbWF0aW9uU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9BbmltYXRpb25fMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9BbmltYXRpb25fM19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9BbmltYXRpb25fNl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfQW5pbWF0aW9uQ2xpcF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfQXZhdGFyX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Db25zdHJhaW50TWFuYWdlcl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfQVJTY3JpcHRpbmdDbGFzc2VzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Bc3NldEJ1bmRsZVNjcmlwdGluZ0NsYXNzZXNfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfQXNzZXRCdW5kbGVfUHVibGljXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0F1ZGlvU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19BdWRpb19QdWJsaWNfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19BdWRpb19QdWJsaWNfMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19BdWRpb19QdWJsaWNfM19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9WaWRlb18wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9DbG90aFNjcmlwdGluZ0NsYXNzZXNfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2xvdGhfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUGh5c1hfU291cmNlX0xvd0xldmVsQ2xvdGhfc3JjXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19fY3h4X2dsb2JhbF92YXJfaW5pdF8xNigpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Td0NvbGxpc2lvbl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfU3dGYWN0b3J5X2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Td0ludGVyQ29sbGlzaW9uX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Td1NlbGZDb2xsaXNpb25fY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1N3U29sdmVyS2VybmVsX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9hcnRpZmFjdHNfV2ViR0xfY29kZWdlbmVyYXRvcl8wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1ZpcnR1YWxGaWxlU3lzdGVtXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfSW5wdXRfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfRXh0ZXJuYWxfUHJvcGhlY3lTREtfQmxpdE9wZXJhdGlvbnNfMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfU3ByaXRlUmVuZGVyZXJKb2JzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lXzJEX1NvcnRpbmdfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV8yRF9TcHJpdGVBdGxhc18wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMigpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FsbG9jYXRvcl8xX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FwcGxpY2F0aW9uXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQmFzZUNsYXNzZXNfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CYXNlQ2xhc3Nlc18xX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0Jhc2VDbGFzc2VzXzJfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQmFzZUNsYXNzZXNfM19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CdXJzdF8wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV8wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV8yX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV8zX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV80X2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV81X2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV82X2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV83X2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9TaGFkb3dzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV9DdWxsaW5nXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19fY3h4X2dsb2JhbF92YXJfaW5pdF8yMigpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV9SZW5kZXJMYXllcnNfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9DYW1lcmFfUmVuZGVyTG9vcHNfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9DYW1lcmFfUmVuZGVyTG9vcHNfMl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9Db250YWluZXJzXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ29yZV9DYWxsYmFja3NfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9GaWxlXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR2VvbWV0cnlfMl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc18wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzFfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19fY3h4X2dsb2JhbF92YXJfaW5pdF80MSgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzVfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfNl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc183X2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzhfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfOV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc18xMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc18xMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc19CaWxsYm9hcmRfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc19MT0RfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc19NZXNoXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfTWVzaF8yX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX01lc2hfNF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc19NZXNoXzVfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfU2NyaXB0YWJsZVJlbmRlckxvb3BfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9JbnRlcmZhY2VzXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfSW50ZXJmYWNlc18xX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0ludGVyZmFjZXNfMl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9Kb2JzXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfSm9ic19TY3JpcHRCaW5kaW5nc18wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01hdGhfMl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9NYXRoX1JhbmRvbV8wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01pc2NfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9NaXNjXzJfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19fY3h4X2dsb2JhbF92YXJfaW5pdF8xMjYoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9NaXNjXzRfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfTWlzY181X2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1ByZWxvYWRNYW5hZ2VyXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2NlbmVNYW5hZ2VyXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2hhZGVyc18wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NoYWRlcnNfMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9TaGFkZXJzX1NoYWRlckltcGxfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9TaGFkZXJzX1NoYWRlckltcGxfMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9UcmFuc2Zvcm1fMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9UcmFuc2Zvcm1fMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VdGlsaXRpZXNfMl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VdGlsaXRpZXNfNV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VdGlsaXRpZXNfNl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VdGlsaXRpZXNfN19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VdGlsaXRpZXNfOV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfQXNzZXRCdW5kbGVGaWxlU3lzdGVtX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01vZHVsZXNfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19Qcm9maWxlcl9QdWJsaWNfMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19Qcm9maWxlcl9SdW50aW1lXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfRXhwb3J0XzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1Vuc2FmZVV0aWxpdHlfYmluZGluZ3NfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR2Z4RGV2aWNlXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR2Z4RGV2aWNlXzFfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR2Z4RGV2aWNlXzJfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR2Z4RGV2aWNlXzNfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfUGx1Z2luSW50ZXJmYWNlXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfRGlyZWN0b3JfQ29yZV8xX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NjcmlwdGluZ0JhY2tlbmRfSWwyQ3BwXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2NyaXB0aW5nXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2NyaXB0aW5nXzNfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfTW9ub19TZXJpYWxpemF0aW9uQmFja2VuZF9EaXJlY3RNZW1vcnlBY2Nlc3NfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9Nb25vX1NlcmlhbGl6YXRpb25CYWNrZW5kX0RpcmVjdE1lbW9yeUFjY2Vzc18xX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NlcmlhbGl6ZV9UcmFuc2ZlckZ1bmN0aW9uc18wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NlcmlhbGl6ZV9UcmFuc2ZlckZ1bmN0aW9uc18xX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9QbGF0Zm9ybURlcGVuZGVudF9XZWJHTF9Tb3VyY2VfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfYXJ0aWZhY3RzX1dlYkdMX21vZHVsZXNfQ29yZV9XZWJHTF9hc21qc19ub25kZXZfaV9yX25vdGhyZWFkc18xNV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfU3BhcnNlVGV4dHVyZUdMRVNfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1RyYW5zZm9ybUZlZWRiYWNrU2tpbm5pbmdfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0xvZ0Fzc2VydF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfU2hhZGVyX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9UcmFuc2Zvcm1fY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0RpcmVjdG9yU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfR3JpZFNjcmlwdGluZ0NsYXNzZXNfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfR3JpZF9QdWJsaWNfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX19jeHhfZ2xvYmFsX3Zhcl9pbml0XzI5MTUoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfSU1HVUlTY3JpcHRpbmdDbGFzc2VzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0lNR1VJXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19fY3h4X2dsb2JhbF92YXJfaW5pdF8xOSgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0lNR1VJXzFfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0lucHV0U2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUGFydGljbGVTeXN0ZW1TY3JpcHRpbmdDbGFzc2VzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1BhcnRpY2xlU3lzdGVtX01vZHVsZXNfM19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUGFydGljbGVTeXN0ZW1SZW5kZXJlcl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfU2hhcGVNb2R1bGVfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1BoeXNpY3MyRFNjcmlwdGluZ0NsYXNzZXNfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfUGh5c2ljczJEX1B1YmxpY18wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1BoeXNpY3MyRF9QdWJsaWNfMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUGh5c2ljc1NjcmlwdGluZ0NsYXNzZXNfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfRHluYW1pY3NfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9EeW5hbWljc18xX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9UZXJyYWluU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX19jeHhfZ2xvYmFsX3Zhcl9pbml0XzEwNigpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RlcnJhaW5fUHVibGljXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfVGVycmFpbl9QdWJsaWNfMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXJyYWluX1B1YmxpY18yX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RlcnJhaW5fVlJfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfVGV4dENvcmVTY3JpcHRpbmdDbGFzc2VzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RleHRDb3JlX05hdGl2ZV9Gb250RW5naW5lXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1RleHRSZW5kZXJpbmdTY3JpcHRpbmdDbGFzc2VzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RleHRSZW5kZXJpbmdfUHVibGljXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1RpbGVtYXBTY3JpcHRpbmdDbGFzc2VzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RpbGVtYXBfMF9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UaWxlbWFwX1B1YmxpY18wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9VSUVsZW1lbnRzU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfRXh0ZXJuYWxfWW9nYV9Zb2dhXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1VJU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VSV8wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1VJXzFfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVUlfMl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfdW1icmFfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1VuaXR5QW5hbHl0aWNzU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19Vbml0eUFuYWx5dGljc19EaXNwYXRjaGVyXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1VuaXR5QWRzU2V0dGluZ3NfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1VuaXR5V2ViUmVxdWVzdFNjcmlwdGluZ0NsYXNzZXNfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfVW5pdHlXZWJSZXF1ZXN0X1B1YmxpY18wX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9WRlhTY3JpcHRpbmdDbGFzc2VzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1ZGWF9QdWJsaWNfMV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19WRlhfUHVibGljXzJfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1ZpZGVvU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfVlJTY3JpcHRpbmdDbGFzc2VzX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1ZSXzJfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVlJfUGx1Z2luSW50ZXJmYWNlXzBfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1dpbmRfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1hSU2NyaXB0aW5nQ2xhc3Nlc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19YUl9TdWJzeXN0ZW1zX0lucHV0X1B1YmxpY18xX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9DbGFzc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTWV0YWRhdGFDYWNoZV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfdGhyZWFkcG9vbF9tc19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfRmlsZV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUmVmbGVjdGlvbl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfVGhyZWFkX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9BcnJheU1ldGFkYXRhX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Bc3NlbWJseV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfdGhyZWFkcG9vbF9tc19pb19jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUkNXX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9JbWFnZV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfR2VuZXJpY01ldGFkYXRhX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9HQ0hhbmRsZV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfU29ja2V0X2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9HYXJiYWdlQ29sbGVjdG9yX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9TdGFja1RyYWNlX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9Cb2VobUdDX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9UaHJlYWRfY3BwXzE2OTU5MygpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9BcHBEb21haW5fY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX1RocmVhZEltcGxfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0NvbnNvbGVfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0xpYnJhcnlMb2FkZXJfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0dlbmVyaWNNZXRob2RfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX01lbW9yeU1hcEltcGxfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0ludGVybG9ja2VkX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9TdHJpbmdfY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0Fzc2VtYmx5X2NwcF8xNzAzNDAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfTWVtb3J5TWFwcGVkRmlsZV9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9jcHBfMTcwOTYzKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0lsMkNwcENvZGVSZWdpc3RyYXRpb25fY3BwKCkKICAgICAgICB9KQogICAgfSwgewogICAgICAgIGZ1bmM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgX19HTE9CQUxfX3N1Yl9JX0Vudmlyb25tZW50X2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9OYXRpdmVEZWxlZ2F0ZU1ldGhvZENhY2hlX2NwcCgpCiAgICAgICAgfSkKICAgIH0sIHsKICAgICAgICBmdW5jOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF9fR0xPQkFMX19zdWJfSV9FcnJvcl9jcHAoKQogICAgICAgIH0pCiAgICB9LCB7CiAgICAgICAgZnVuYzogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBfX0dMT0JBTF9fc3ViX0lfUGF0aF9jcHAoKQogICAgICAgIH0pCiAgICB9KTsKICAgIHZhciBTVEFUSUNfQlVNUCA9IDQ4Njc2MDA7CiAgICBNb2R1bGVbIlNUQVRJQ19CQVNFIl0gPSBTVEFUSUNfQkFTRTsKICAgIE1vZHVsZVsiU1RBVElDX0JVTVAiXSA9IFNUQVRJQ19CVU1QOwogICAgdmFyIHRlbXBEb3VibGVQdHIgPSBTVEFUSUNUT1A7CiAgICBTVEFUSUNUT1AgKz0gMTY7CgogICAgZnVuY3Rpb24gX0pTX0N1cnNvcl9TZXRJbWFnZShwdHIsIGxlbmd0aCkgewogICAgICAgIHZhciBiaW5hcnkgPSAiIjsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShIRUFQVThbcHRyICsgaV0pOwogICAgICAgIE1vZHVsZS5jYW52YXMuc3R5bGUuY3Vyc29yID0gInVybChkYXRhOmltYWdlL2N1cjtiYXNlNjQsIiArIGJ0b2EoYmluYXJ5KSArICIpLGRlZmF1bHQiCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX0N1cnNvcl9TZXRTaG93KHNob3cpIHsKICAgICAgICBNb2R1bGUuY2FudmFzLnN0eWxlLmN1cnNvciA9IHNob3cgPyAiZGVmYXVsdCIgOiAibm9uZSIKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfRXZhbF9DbGVhclRpbWVvdXQoaWQpIHsKICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KGlkKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19FdmFsX09wZW5VUkwocHRyKSB7CiAgICAgICAgdmFyIHN0ciA9IFBvaW50ZXJfc3RyaW5naWZ5KHB0cik7CiAgICB9CgogICAgZnVuY3Rpb24gX0pTX0V2YWxfU2V0VGltZW91dChmdW5jLCBhcmcsIG1pbGxpcykgewogICAgICAgIE1vZHVsZVsibm9FeGl0UnVudGltZSJdID0gdHJ1ZTsKCiAgICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHsKICAgICAgICAgICAgZ2V0RnVuY1dyYXBwZXIoZnVuYywgInZpIikoYXJnKQogICAgICAgIH0KICAgICAgICByZXR1cm4gQnJvd3Nlci5zYWZlU2V0VGltZW91dCh3cmFwcGVyLCBtaWxsaXMpCiAgICB9CiAgICB2YXIgZnMgPSB7CiAgICAgICAgbnVtUGVuZGluZ1N5bmM6IDAsCiAgICAgICAgc3luY0ludGVydmFsSUQ6IDAsCiAgICAgICAgc3luY0luUHJvZ3Jlc3M6IGZhbHNlLAogICAgICAgIHN5bmM6IChmdW5jdGlvbihvbmx5UGVuZGluZ1N5bmMpIHsKICAgICAgICAgICAgaWYgKG9ubHlQZW5kaW5nU3luYykgewogICAgICAgICAgICAgICAgaWYgKGZzLm51bVBlbmRpbmdTeW5jID09IDApIHJldHVybgogICAgICAgICAgICB9IGVsc2UgaWYgKGZzLnN5bmNJblByb2dyZXNzKSB7CiAgICAgICAgICAgICAgICBmcy5udW1QZW5kaW5nU3luYysrOwogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnMuc3luY0luUHJvZ3Jlc3MgPSB0cnVlOwogICAgICAgICAgICBGUy5zeW5jZnMoZmFsc2UsIChmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgIGZzLnN5bmNJblByb2dyZXNzID0gZmFsc2UKICAgICAgICAgICAgfSkpOwogICAgICAgICAgICBmcy5udW1QZW5kaW5nU3luYyA9IDAKICAgICAgICB9KQogICAgfTsKCiAgICBmdW5jdGlvbiBfSlNfRmlsZVN5c3RlbV9TZXRTeW5jSW50ZXJ2YWwobXMpIHsKICAgICAgICBpZiAoIU1vZHVsZS5pbmRleGVkREIpIHJldHVybjsKICAgICAgICBmcy5zeW5jSW50ZXJ2YWxJRCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGZzLnN5bmModHJ1ZSkKICAgICAgICB9KSwgbXMpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX0ZpbGVTeXN0ZW1fU3luYygpIHsKICAgICAgICBpZiAoIU1vZHVsZS5pbmRleGVkREIpIHJldHVybjsKICAgICAgICBmcy5zeW5jKGZhbHNlKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Mb2dfU3RhY2tUcmFjZShidWZmZXIsIGJ1ZmZlclNpemUpIHsKICAgICAgICB2YXIgdHJhY2UgPSBzdGFja1RyYWNlKCk7CiAgICAgICAgaWYgKGJ1ZmZlcikgc3RyaW5nVG9VVEY4KHRyYWNlLCBidWZmZXIsIGJ1ZmZlclNpemUpOwogICAgICAgIHJldHVybiBsZW5ndGhCeXRlc1VURjgodHJhY2UpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1Bva2lTREtfY29tbWVyY2lhbEJyZWFrKCkgewogICAgICAgIHdpbmRvdy5jb21tZXJjaWFsQnJlYWsoKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Qb2tpU0RLX2N1c3RvbUV2ZW50KG5vdW4sIHZlcmIsIGpzb24pIHsKICAgICAgICBQb2tpU0RLLmN1c3RvbUV2ZW50KFBvaW50ZXJfc3RyaW5naWZ5KG5vdW4pLCBQb2ludGVyX3N0cmluZ2lmeSh2ZXJiKSwgUG9pbnRlcl9zdHJpbmdpZnkoanNvbikpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1Bva2lTREtfZGVzdHJveUFkKGlkZW50aWZpZXIpIHsKICAgICAgICBpZiAod2luZG93Ll9jYWNoZWRBZFBvc2l0aW9ucykgewogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSB3aW5kb3cuX2NhY2hlZEFkUG9zaXRpb25zW1BvaW50ZXJfc3RyaW5naWZ5KGlkZW50aWZpZXIpXTsKICAgICAgICAgICAgaWYgKGNvbnRhaW5lcikgewogICAgICAgICAgICAgICAgUG9raVNESy5kZXN0cm95QWQoY29udGFpbmVyKTsKICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS50b3AgPSBjb250YWluZXIuc3R5bGUubGVmdCA9ICItMTAwMHB4IgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Qb2tpU0RLX2Rpc3BsYXlBZChpZGVudGlmaWVyLCBzaXplLCB0b3AsIGxlZnQpIHsKICAgICAgICB2YXIgY29udGFpbmVyID0gdW5kZWZpbmVkOwogICAgICAgIGlmICghd2luZG93Ll9jYWNoZWRBZFBvc2l0aW9ucykgd2luZG93Ll9jYWNoZWRBZFBvc2l0aW9ucyA9IHt9OwogICAgICAgIGNvbnRhaW5lciA9IHdpbmRvdy5fY2FjaGVkQWRQb3NpdGlvbnNbUG9pbnRlcl9zdHJpbmdpZnkoaWRlbnRpZmllcildOwogICAgICAgIGlmICghY29udGFpbmVyKSB7CiAgICAgICAgICAgIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICAgICBjb250YWluZXIuc2V0QXR0cmlidXRlKCJpZCIsICJQb2tpVW5pdHlTREtfQWRfIiArIFBvaW50ZXJfc3RyaW5naWZ5KGlkZW50aWZpZXIpKTsKICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOwogICAgICAgICAgICB3aW5kb3cuX2NhY2hlZEFkUG9zaXRpb25zW1BvaW50ZXJfc3RyaW5naWZ5KGlkZW50aWZpZXIpXSA9IGNvbnRhaW5lcgogICAgICAgIH0KICAgICAgICBjb250YWluZXIuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgICAgIGNvbnRhaW5lci5zdHlsZS56SW5kZXggPSA5OTk7CiAgICAgICAgY29udGFpbmVyLnN0eWxlLnRvcCA9IFBvaW50ZXJfc3RyaW5naWZ5KHRvcCk7CiAgICAgICAgY29udGFpbmVyLnN0eWxlLmxlZnQgPSBQb2ludGVyX3N0cmluZ2lmeShsZWZ0KTsKICAgICAgICBQb2tpU0RLLmRpc3BsYXlBZChjb250YWluZXIsIFBvaW50ZXJfc3RyaW5naWZ5KHNpemUpKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Qb2tpU0RLX2dhbWVJbnRlcmFjdGl2ZSgpIHsKICAgICAgICBQb2tpU0RLLmdhbWVJbnRlcmFjdGl2ZSgpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1Bva2lTREtfZ2FtZUxvYWRpbmdGaW5pc2hlZCgpIHsKICAgICAgICBQb2tpU0RLLmdhbWVMb2FkaW5nRmluaXNoZWQoKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Qb2tpU0RLX2dhbWVMb2FkaW5nUHJvZ3Jlc3MoKSB7CiAgICAgICAgTW9kdWxlWyJwcmludEVyciJdKCJtaXNzaW5nIGZ1bmN0aW9uOiBKU19Qb2tpU0RLX2dhbWVMb2FkaW5nUHJvZ3Jlc3MiKTsKICAgICAgICBhYm9ydCgtMSkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfUG9raVNES19nYW1lTG9hZGluZ1N0YXJ0KCkgewogICAgICAgIFBva2lTREsuZ2FtZUxvYWRpbmdTdGFydCgpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1Bva2lTREtfZ2FtZXBsYXlTdGFydCgpIHsKICAgICAgICBQb2tpU0RLLmdhbWVwbGF5U3RhcnQoKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Qb2tpU0RLX2dhbWVwbGF5U3RvcCgpIHsKICAgICAgICBQb2tpU0RLLmdhbWVwbGF5U3RvcCgpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1Bva2lTREtfaGFwcHlUaW1lKGludGVuc2l0eSkgewogICAgICAgIFBva2lTREsuaGFwcHlUaW1lKFBvaW50ZXJfc3RyaW5naWZ5KGludGVuc2l0eSkpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1Bva2lTREtfaW5pdFBva2lCcmlkZ2UobmFtZSkgewogICAgICAgIHdpbmRvdy5pbml0UG9raUJyaWRnZShQb2ludGVyX3N0cmluZ2lmeShuYW1lKSkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfUG9raVNES19yZXdhcmRlZEJyZWFrKCkgewogICAgICAgIHdpbmRvdy5yZXdhcmRlZEJyZWFrKCkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfUG9raVNES19yb3VuZEVuZChpZGVudGlmaWVyKSB7CiAgICAgICAgUG9raVNESy5yb3VuZEVuZChQb2ludGVyX3N0cmluZ2lmeShpZGVudGlmaWVyKSkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfUG9raVNES19yb3VuZFN0YXJ0KGlkZW50aWZpZXIpIHsKICAgICAgICBQb2tpU0RLLnJvdW5kU3RhcnQoUG9pbnRlcl9zdHJpbmdpZnkoaWRlbnRpZmllcikpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1Bva2lTREtfc2V0UGxheWVyQWdlKGFnZSkgewogICAgICAgIFBva2lTREsuc2V0UGxheWVyQWdlKFBvaW50ZXJfc3RyaW5naWZ5KGFnZSkpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1Bva2lTREtfdG9nZ2xlUGxheWVyQWR2ZXJ0aXNpbmdDb25zZW50KGNvbnNlbnQpIHsKICAgICAgICBQb2tpU0RLLnRvZ2dsZVBsYXllckFkdmVydGlzaW5nQ29uc2VudChQb2ludGVyX3N0cmluZ2lmeShjb25zZW50KSkKICAgIH0KICAgIHZhciBXRUJBdWRpbyA9IHsKICAgICAgICBhdWRpb0luc3RhbmNlczogW10sCiAgICAgICAgYXVkaW9Db250ZXh0OiB7fSwKICAgICAgICBhdWRpb1dlYkVuYWJsZWQ6IDAKICAgIH07CgogICAgZnVuY3Rpb24gX0pTX1NvdW5kX0NyZWF0ZV9DaGFubmVsKGNhbGxiYWNrLCB1c2VyRGF0YSkgewogICAgICAgIGlmIChXRUJBdWRpby5hdWRpb1dlYkVuYWJsZWQgPT0gMCkgcmV0dXJuOwogICAgICAgIHZhciBjaGFubmVsID0gewogICAgICAgICAgICBnYWluOiBXRUJBdWRpby5hdWRpb0NvbnRleHQuY3JlYXRlR2FpbigpLAogICAgICAgICAgICBwYW5uZXI6IFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5jcmVhdGVQYW5uZXIoKSwKICAgICAgICAgICAgdGhyZWVEOiBmYWxzZSwKICAgICAgICAgICAgcGxheUJ1ZmZlcjogKGZ1bmN0aW9uKGRlbGF5LCBidWZmZXIsIG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhpcy5zb3VyY2UuYnVmZmVyID0gYnVmZmVyOwogICAgICAgICAgICAgICAgdmFyIGNoYW4gPSB0aGlzOwogICAgICAgICAgICAgICAgdGhpcy5zb3VyY2Uub25lbmRlZCA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2spIGR5bkNhbGwoInZpIiwgY2FsbGJhY2ssIFt1c2VyRGF0YV0pOwogICAgICAgICAgICAgICAgICAgIGNoYW4uc2V0dXAoKQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZS5zdGFydChkZWxheSwgb2Zmc2V0KQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgc2V0dXA6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHRoaXMuc291cmNlID0gV0VCQXVkaW8uYXVkaW9Db250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogICAgICAgICAgICAgICAgdGhpcy5zZXR1cFBhbm5pbmcoKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgc2V0dXBQYW5uaW5nOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy50aHJlZUQpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZS5kaXNjb25uZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zb3VyY2UuY29ubmVjdCh0aGlzLnBhbm5lcik7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5uZXIuY29ubmVjdCh0aGlzLmdhaW4pCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMucGFubmVyLmRpc2Nvbm5lY3QoKTsKICAgICAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZS5jb25uZWN0KHRoaXMuZ2FpbikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9OwogICAgICAgIGNoYW5uZWwucGFubmVyLnJvbGxvZmZGYWN0b3IgPSAwOwogICAgICAgIGNoYW5uZWwuZ2Fpbi5jb25uZWN0KFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5kZXN0aW5hdGlvbik7CiAgICAgICAgY2hhbm5lbC5zZXR1cCgpOwogICAgICAgIHJldHVybiBXRUJBdWRpby5hdWRpb0luc3RhbmNlcy5wdXNoKGNoYW5uZWwpIC0gMQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Tb3VuZF9HZXRMZW5ndGgoYnVmZmVySW5zdGFuY2UpIHsKICAgICAgICBpZiAoV0VCQXVkaW8uYXVkaW9XZWJFbmFibGVkID09IDApIHJldHVybiAwOwogICAgICAgIHZhciBzb3VuZCA9IFdFQkF1ZGlvLmF1ZGlvSW5zdGFuY2VzW2J1ZmZlckluc3RhbmNlXTsKICAgICAgICB2YXIgc2FtcGxlUmF0ZVJhdGlvID0gNDQxMDAgLyBzb3VuZC5idWZmZXIuc2FtcGxlUmF0ZTsKICAgICAgICByZXR1cm4gc291bmQuYnVmZmVyLmxlbmd0aCAqIHNhbXBsZVJhdGVSYXRpbwogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Tb3VuZF9HZXRMb2FkU3RhdGUoYnVmZmVySW5zdGFuY2UpIHsKICAgICAgICBpZiAoV0VCQXVkaW8uYXVkaW9XZWJFbmFibGVkID09IDApIHJldHVybiAyOwogICAgICAgIHZhciBzb3VuZCA9IFdFQkF1ZGlvLmF1ZGlvSW5zdGFuY2VzW2J1ZmZlckluc3RhbmNlXTsKICAgICAgICBpZiAoc291bmQuZXJyb3IpIHJldHVybiAyOwogICAgICAgIGlmIChzb3VuZC5idWZmZXIpIHJldHVybiAwOwogICAgICAgIHJldHVybiAxCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1NvdW5kX0luaXQoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgd2luZG93LkF1ZGlvQ29udGV4dCA9IHdpbmRvdy5BdWRpb0NvbnRleHQgfHwgd2luZG93LndlYmtpdEF1ZGlvQ29udGV4dDsKICAgICAgICAgICAgV0VCQXVkaW8uYXVkaW9Db250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dDsKICAgICAgICAgICAgdmFyIHRyeVRvUmVzdW1lQXVkaW9Db250ZXh0ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgaWYgKFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5zdGF0ZSA9PT0gInN1c3BlbmRlZCIpIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5yZXN1bWUoKTsKICAgICAgICAgICAgICAgIGVsc2UgY2xlYXJJbnRlcnZhbChyZXN1bWVJbnRlcnZhbCkKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciByZXN1bWVJbnRlcnZhbCA9IHNldEludGVydmFsKHRyeVRvUmVzdW1lQXVkaW9Db250ZXh0LCA0MDApOwogICAgICAgICAgICBXRUJBdWRpby5hdWRpb1dlYkVuYWJsZWQgPSAxCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBhbGVydCgiV2ViIEF1ZGlvIEFQSSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlciIpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Tb3VuZF9Mb2FkKHB0ciwgbGVuZ3RoKSB7CiAgICAgICAgaWYgKFdFQkF1ZGlvLmF1ZGlvV2ViRW5hYmxlZCA9PSAwKSByZXR1cm4gMDsKICAgICAgICB2YXIgc291bmQgPSB7CiAgICAgICAgICAgIGJ1ZmZlcjogbnVsbCwKICAgICAgICAgICAgZXJyb3I6IGZhbHNlCiAgICAgICAgfTsKICAgICAgICB2YXIgaW5zdGFuY2UgPSBXRUJBdWRpby5hdWRpb0luc3RhbmNlcy5wdXNoKHNvdW5kKSAtIDE7CiAgICAgICAgV0VCQXVkaW8uYXVkaW9Db250ZXh0LmRlY29kZUF1ZGlvRGF0YShIRUFQVTguYnVmZmVyLnNsaWNlKHB0ciwgcHRyICsgbGVuZ3RoKSwgKGZ1bmN0aW9uKGJ1ZmZlcikgewogICAgICAgICAgICBzb3VuZC5idWZmZXIgPSBidWZmZXIKICAgICAgICB9KSwgKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzb3VuZC5lcnJvciA9IHRydWU7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJEZWNvZGUgZXJyb3IuIikKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGluc3RhbmNlCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1NvdW5kX0xvYWRfUENNKGNoYW5uZWxzLCBsZW5ndGgsIHNhbXBsZVJhdGUsIHB0cikgewogICAgICAgIGlmIChXRUJBdWRpby5hdWRpb1dlYkVuYWJsZWQgPT0gMCkgcmV0dXJuIDA7CiAgICAgICAgdmFyIHNvdW5kID0gewogICAgICAgICAgICBidWZmZXI6IFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5jcmVhdGVCdWZmZXIoY2hhbm5lbHMsIGxlbmd0aCwgc2FtcGxlUmF0ZSksCiAgICAgICAgICAgIGVycm9yOiBmYWxzZQogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFubmVsczsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvZmZzID0gKHB0ciA+PiAyKSArIGxlbmd0aCAqIGk7CiAgICAgICAgICAgIHZhciBidWZmZXIgPSBzb3VuZC5idWZmZXI7CiAgICAgICAgICAgIHZhciBjb3B5VG9DaGFubmVsID0gYnVmZmVyWyJjb3B5VG9DaGFubmVsIl0gfHwgKGZ1bmN0aW9uKHNvdXJjZSwgY2hhbm5lbE51bWJlciwgc3RhcnRJbkNoYW5uZWwpIHsKICAgICAgICAgICAgICAgIHZhciBjbGlwcGVkID0gc291cmNlLnN1YmFycmF5KDAsIE1hdGgubWluKHNvdXJjZS5sZW5ndGgsIHRoaXMubGVuZ3RoIC0gKHN0YXJ0SW5DaGFubmVsIHwgMCkpKTsKICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2hhbm5lbERhdGEoY2hhbm5lbE51bWJlciB8IDApLnNldChjbGlwcGVkLCBzdGFydEluQ2hhbm5lbCB8IDApCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb3B5VG9DaGFubmVsLmFwcGx5KGJ1ZmZlciwgW0hFQVBGMzIuc3ViYXJyYXkob2Zmcywgb2ZmcyArIGxlbmd0aCksIGksIDBdKQogICAgICAgIH0KICAgICAgICB2YXIgaW5zdGFuY2UgPSBXRUJBdWRpby5hdWRpb0luc3RhbmNlcy5wdXNoKHNvdW5kKSAtIDE7CiAgICAgICAgcmV0dXJuIGluc3RhbmNlCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1NvdW5kX1BsYXkoYnVmZmVySW5zdGFuY2UsIGNoYW5uZWxJbnN0YW5jZSwgb2Zmc2V0LCBkZWxheSkgewogICAgICAgIF9KU19Tb3VuZF9TdG9wKGNoYW5uZWxJbnN0YW5jZSwgMCk7CiAgICAgICAgaWYgKFdFQkF1ZGlvLmF1ZGlvV2ViRW5hYmxlZCA9PSAwKSByZXR1cm47CiAgICAgICAgdmFyIHNvdW5kID0gV0VCQXVkaW8uYXVkaW9JbnN0YW5jZXNbYnVmZmVySW5zdGFuY2VdOwogICAgICAgIHZhciBjaGFubmVsID0gV0VCQXVkaW8uYXVkaW9JbnN0YW5jZXNbY2hhbm5lbEluc3RhbmNlXTsKICAgICAgICBpZiAoc291bmQuYnVmZmVyKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBjaGFubmVsLnBsYXlCdWZmZXIoV0VCQXVkaW8uYXVkaW9Db250ZXh0LmN1cnJlbnRUaW1lICsgZGVsYXksIHNvdW5kLmJ1ZmZlciwgb2Zmc2V0KQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJwbGF5QnVmZmVyIGVycm9yLiBFeGNlcHRpb246ICIgKyBlKQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGNvbnNvbGUubG9nKCJUcnlpbmcgdG8gcGxheSBzb3VuZCB3aGljaCBpcyBub3QgbG9hZGVkLiIpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1NvdW5kX1JlbGVhc2VJbnN0YW5jZShpbnN0YW5jZSkgewogICAgICAgIFdFQkF1ZGlvLmF1ZGlvSW5zdGFuY2VzW2luc3RhbmNlXSA9IG51bGwKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfU291bmRfUmVzdW1lSWZOZWVkZWQoKSB7CiAgICAgICAgaWYgKFdFQkF1ZGlvLmF1ZGlvV2ViRW5hYmxlZCA9PSAwKSByZXR1cm47CiAgICAgICAgaWYgKFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5zdGF0ZSA9PT0gInN1c3BlbmRlZCIpIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5yZXN1bWUoKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Tb3VuZF9TZXQzRChjaGFubmVsSW5zdGFuY2UsIHRocmVlRCkgewogICAgICAgIHZhciBjaGFubmVsID0gV0VCQXVkaW8uYXVkaW9JbnN0YW5jZXNbY2hhbm5lbEluc3RhbmNlXTsKICAgICAgICBpZiAoY2hhbm5lbC50aHJlZUQgIT0gdGhyZWVEKSB7CiAgICAgICAgICAgIGNoYW5uZWwudGhyZWVEID0gdGhyZWVEOwogICAgICAgICAgICBjaGFubmVsLnNldHVwUGFubmluZygpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19Tb3VuZF9TZXRMaXN0ZW5lck9yaWVudGF0aW9uKHgsIHksIHosIHhVcCwgeVVwLCB6VXApIHsKICAgICAgICBpZiAoV0VCQXVkaW8uYXVkaW9XZWJFbmFibGVkID09IDApIHJldHVybjsKICAgICAgICBpZiAoV0VCQXVkaW8uYXVkaW9Db250ZXh0Lmxpc3RlbmVyLmZvcndhcmRYKSB7CiAgICAgICAgICAgIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5saXN0ZW5lci5mb3J3YXJkWC5zZXRWYWx1ZUF0VGltZSgteCwgV0VCQXVkaW8uYXVkaW9Db250ZXh0LmN1cnJlbnRUaW1lKTsKICAgICAgICAgICAgV0VCQXVkaW8uYXVkaW9Db250ZXh0Lmxpc3RlbmVyLmZvcndhcmRZLnNldFZhbHVlQXRUaW1lKC15LCBXRUJBdWRpby5hdWRpb0NvbnRleHQuY3VycmVudFRpbWUpOwogICAgICAgICAgICBXRUJBdWRpby5hdWRpb0NvbnRleHQubGlzdGVuZXIuZm9yd2FyZFouc2V0VmFsdWVBdFRpbWUoLXosIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5jdXJyZW50VGltZSk7CiAgICAgICAgICAgIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5saXN0ZW5lci51cFguc2V0VmFsdWVBdFRpbWUoeFVwLCBXRUJBdWRpby5hdWRpb0NvbnRleHQuY3VycmVudFRpbWUpOwogICAgICAgICAgICBXRUJBdWRpby5hdWRpb0NvbnRleHQubGlzdGVuZXIudXBZLnNldFZhbHVlQXRUaW1lKHlVcCwgV0VCQXVkaW8uYXVkaW9Db250ZXh0LmN1cnJlbnRUaW1lKTsKICAgICAgICAgICAgV0VCQXVkaW8uYXVkaW9Db250ZXh0Lmxpc3RlbmVyLnVwWi5zZXRWYWx1ZUF0VGltZSh6VXAsIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5jdXJyZW50VGltZSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBXRUJBdWRpby5hdWRpb0NvbnRleHQubGlzdGVuZXIuc2V0T3JpZW50YXRpb24oLXgsIC15LCAteiwgeFVwLCB5VXAsIHpVcCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1NvdW5kX1NldExpc3RlbmVyUG9zaXRpb24oeCwgeSwgeikgewogICAgICAgIGlmIChXRUJBdWRpby5hdWRpb1dlYkVuYWJsZWQgPT0gMCkgcmV0dXJuOwogICAgICAgIGlmIChXRUJBdWRpby5hdWRpb0NvbnRleHQubGlzdGVuZXIucG9zaXRpb25YKSB7CiAgICAgICAgICAgIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5saXN0ZW5lci5wb3NpdGlvblguc2V0VmFsdWVBdFRpbWUoeCwgV0VCQXVkaW8uYXVkaW9Db250ZXh0LmN1cnJlbnRUaW1lKTsKICAgICAgICAgICAgV0VCQXVkaW8uYXVkaW9Db250ZXh0Lmxpc3RlbmVyLnBvc2l0aW9uWS5zZXRWYWx1ZUF0VGltZSh5LCBXRUJBdWRpby5hdWRpb0NvbnRleHQuY3VycmVudFRpbWUpOwogICAgICAgICAgICBXRUJBdWRpby5hdWRpb0NvbnRleHQubGlzdGVuZXIucG9zaXRpb25aLnNldFZhbHVlQXRUaW1lKHosIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5jdXJyZW50VGltZSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBXRUJBdWRpby5hdWRpb0NvbnRleHQubGlzdGVuZXIuc2V0UG9zaXRpb24oeCwgeSwgeikKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1NvdW5kX1NldExvb3AoY2hhbm5lbEluc3RhbmNlLCBsb29wKSB7CiAgICAgICAgaWYgKFdFQkF1ZGlvLmF1ZGlvV2ViRW5hYmxlZCA9PSAwKSByZXR1cm47CiAgICAgICAgV0VCQXVkaW8uYXVkaW9JbnN0YW5jZXNbY2hhbm5lbEluc3RhbmNlXS5zb3VyY2UubG9vcCA9IGxvb3AKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfU291bmRfU2V0TG9vcFBvaW50cyhjaGFubmVsSW5zdGFuY2UsIGxvb3BTdGFydCwgbG9vcEVuZCkgewogICAgICAgIGlmIChXRUJBdWRpby5hdWRpb1dlYkVuYWJsZWQgPT0gMCkgcmV0dXJuOwogICAgICAgIHZhciBjaGFubmVsID0gV0VCQXVkaW8uYXVkaW9JbnN0YW5jZXNbY2hhbm5lbEluc3RhbmNlXTsKICAgICAgICBjaGFubmVsLnNvdXJjZS5sb29wU3RhcnQgPSBsb29wU3RhcnQ7CiAgICAgICAgY2hhbm5lbC5zb3VyY2UubG9vcEVuZCA9IGxvb3BFbmQKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfU291bmRfU2V0UGl0Y2goY2hhbm5lbEluc3RhbmNlLCB2KSB7CiAgICAgICAgaWYgKFdFQkF1ZGlvLmF1ZGlvV2ViRW5hYmxlZCA9PSAwKSByZXR1cm47CiAgICAgICAgV0VCQXVkaW8uYXVkaW9JbnN0YW5jZXNbY2hhbm5lbEluc3RhbmNlXS5zb3VyY2UucGxheWJhY2tSYXRlLnNldFZhbHVlQXRUaW1lKHYsIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5jdXJyZW50VGltZSkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfU291bmRfU2V0UG9zaXRpb24oY2hhbm5lbEluc3RhbmNlLCB4LCB5LCB6KSB7CiAgICAgICAgaWYgKFdFQkF1ZGlvLmF1ZGlvV2ViRW5hYmxlZCA9PSAwKSByZXR1cm47CiAgICAgICAgV0VCQXVkaW8uYXVkaW9JbnN0YW5jZXNbY2hhbm5lbEluc3RhbmNlXS5wYW5uZXIuc2V0UG9zaXRpb24oeCwgeSwgeikKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfU291bmRfU2V0Vm9sdW1lKGNoYW5uZWxJbnN0YW5jZSwgdikgewogICAgICAgIGlmIChXRUJBdWRpby5hdWRpb1dlYkVuYWJsZWQgPT0gMCkgcmV0dXJuOwogICAgICAgIFdFQkF1ZGlvLmF1ZGlvSW5zdGFuY2VzW2NoYW5uZWxJbnN0YW5jZV0uZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKHYsIFdFQkF1ZGlvLmF1ZGlvQ29udGV4dC5jdXJyZW50VGltZSkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfU291bmRfU3RvcChjaGFubmVsSW5zdGFuY2UsIGRlbGF5KSB7CiAgICAgICAgaWYgKFdFQkF1ZGlvLmF1ZGlvV2ViRW5hYmxlZCA9PSAwKSByZXR1cm47CiAgICAgICAgdmFyIGNoYW5uZWwgPSBXRUJBdWRpby5hdWRpb0luc3RhbmNlc1tjaGFubmVsSW5zdGFuY2VdOwogICAgICAgIGlmIChjaGFubmVsLnNvdXJjZS5idWZmZXIpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGNoYW5uZWwuc291cmNlLnN0b3AoV0VCQXVkaW8uYXVkaW9Db250ZXh0LmN1cnJlbnRUaW1lICsgZGVsYXkpCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNoYW5uZWwuc291cmNlLmRpc2Nvbm5lY3QoKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkZWxheSA9PSAwKSB7CiAgICAgICAgICAgICAgICBjaGFubmVsLnNvdXJjZS5vbmVuZGVkID0gKGZ1bmN0aW9uKCkge30pOwogICAgICAgICAgICAgICAgY2hhbm5lbC5zZXR1cCgpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1N5c3RlbUluZm9fR2V0QnJvd3Nlck5hbWUoYnVmZmVyLCBidWZmZXJTaXplKSB7CiAgICAgICAgdmFyIGJyb3dzZXIgPSBVbml0eUxvYWRlci5TeXN0ZW1JbmZvLmJyb3dzZXI7CiAgICAgICAgaWYgKGJ1ZmZlcikgc3RyaW5nVG9VVEY4KGJyb3dzZXIsIGJ1ZmZlciwgYnVmZmVyU2l6ZSk7CiAgICAgICAgcmV0dXJuIGxlbmd0aEJ5dGVzVVRGOChicm93c2VyKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19TeXN0ZW1JbmZvX0dldEJyb3dzZXJWZXJzaW9uU3RyaW5nKGJ1ZmZlciwgYnVmZmVyU2l6ZSkgewogICAgICAgIHZhciBicm93c2VyVmVyID0gVW5pdHlMb2FkZXIuU3lzdGVtSW5mby5icm93c2VyVmVyc2lvbjsKICAgICAgICBpZiAoYnVmZmVyKSBzdHJpbmdUb1VURjgoYnJvd3NlclZlciwgYnVmZmVyLCBidWZmZXJTaXplKTsKICAgICAgICByZXR1cm4gbGVuZ3RoQnl0ZXNVVEY4KGJyb3dzZXJWZXIpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1N5c3RlbUluZm9fR2V0Q3VycmVudENhbnZhc0hlaWdodCgpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJjYW52YXMiXS5jbGllbnRIZWlnaHQKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfU3lzdGVtSW5mb19HZXRDdXJyZW50Q2FudmFzV2lkdGgoKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiY2FudmFzIl0uY2xpZW50V2lkdGgKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfU3lzdGVtSW5mb19HZXREb2N1bWVudFVSTChidWZmZXIsIGJ1ZmZlclNpemUpIHsKICAgICAgICBpZiAoYnVmZmVyKSBzdHJpbmdUb1VURjgoZG9jdW1lbnQuVVJMLCBidWZmZXIsIGJ1ZmZlclNpemUpOwogICAgICAgIHJldHVybiBsZW5ndGhCeXRlc1VURjgoZG9jdW1lbnQuVVJMKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19TeXN0ZW1JbmZvX0dldEdQVUluZm8oYnVmZmVyLCBidWZmZXJTaXplKSB7CiAgICAgICAgdmFyIGdwdWluZm8gPSBVbml0eUxvYWRlci5TeXN0ZW1JbmZvLmdwdTsKICAgICAgICBpZiAoYnVmZmVyKSBzdHJpbmdUb1VURjgoZ3B1aW5mbywgYnVmZmVyLCBidWZmZXJTaXplKTsKICAgICAgICByZXR1cm4gbGVuZ3RoQnl0ZXNVVEY4KGdwdWluZm8pCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1N5c3RlbUluZm9fR2V0SGVpZ2h0KCkgewogICAgICAgIHJldHVybiBVbml0eUxvYWRlci5TeXN0ZW1JbmZvLmhlaWdodAogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19TeXN0ZW1JbmZvX0dldExhbmd1YWdlKGJ1ZmZlciwgYnVmZmVyU2l6ZSkgewogICAgICAgIHZhciBsYW5ndWFnZSA9IFVuaXR5TG9hZGVyLlN5c3RlbUluZm8ubGFuZ3VhZ2U7CiAgICAgICAgaWYgKGJ1ZmZlcikgc3RyaW5nVG9VVEY4KGxhbmd1YWdlLCBidWZmZXIsIGJ1ZmZlclNpemUpOwogICAgICAgIHJldHVybiBsZW5ndGhCeXRlc1VURjgobGFuZ3VhZ2UpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1N5c3RlbUluZm9fR2V0TWVtb3J5KCkgewogICAgICAgIHJldHVybiBUT1RBTF9NRU1PUlkgLyAoMTAyNCAqIDEwMjQpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1N5c3RlbUluZm9fR2V0T1MoYnVmZmVyLCBidWZmZXJTaXplKSB7CiAgICAgICAgdmFyIGJyb3dzZXIgPSBVbml0eUxvYWRlci5TeXN0ZW1JbmZvLm9zICsgIiAiICsgVW5pdHlMb2FkZXIuU3lzdGVtSW5mby5vc1ZlcnNpb247CiAgICAgICAgaWYgKGJ1ZmZlcikgc3RyaW5nVG9VVEY4KGJyb3dzZXIsIGJ1ZmZlciwgYnVmZmVyU2l6ZSk7CiAgICAgICAgcmV0dXJuIGxlbmd0aEJ5dGVzVVRGOChicm93c2VyKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19TeXN0ZW1JbmZvX0dldFdpZHRoKCkgewogICAgICAgIHJldHVybiBVbml0eUxvYWRlci5TeXN0ZW1JbmZvLndpZHRoCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1N5c3RlbUluZm9fSGFzQ3Vyc29yTG9jaygpIHsKICAgICAgICByZXR1cm4gVW5pdHlMb2FkZXIuU3lzdGVtSW5mby5oYXNDdXJzb3JMb2NrCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1N5c3RlbUluZm9fSGFzRnVsbHNjcmVlbigpIHsKICAgICAgICByZXR1cm4gVW5pdHlMb2FkZXIuU3lzdGVtSW5mby5oYXNGdWxsc2NyZWVuCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1N5c3RlbUluZm9fSGFzV2ViR0woKSB7CiAgICAgICAgcmV0dXJuIFVuaXR5TG9hZGVyLlN5c3RlbUluZm8uaGFzV2ViR0wKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfVU5FVFdlYlNvY2tldHNfSG9zdHNDb250YWluaW5nTWVzc2FnZXNDbGVhbkhvc3QoaG9zdElkKSB7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzQ29udGFpbmluZ01lc3NhZ2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c0NvbnRhaW5pbmdNZXNzYWdlc1tpXSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXNbaV0uaWQgPT0gaG9zdElkKSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c0NvbnRhaW5pbmdNZXNzYWdlc1tpXSA9IG51bGwKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB2YXIgc29ja2V0ID0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXNbMF07CiAgICAgICAgaWYgKHNvY2tldCA9PSBudWxsKSByZXR1cm47CiAgICAgICAgaWYgKHNvY2tldC5tZXNzYWdlcy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICBzb2NrZXQuaW5RdWV1ZSA9IGZhbHNlCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXMucHVzaChzb2NrZXQpCiAgICAgICAgfQogICAgICAgIFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzQ29udGFpbmluZ01lc3NhZ2VzLnNoaWZ0KCkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfVU5FVFdlYlNvY2tldHNfSG9zdHNDb250YWluaW5nTWVzc2FnZXNQdXNoKHNvY2tldCkgewogICAgICAgIGlmIChzb2NrZXQuaW5RdWV1ZSA9PSBmYWxzZSkgewogICAgICAgICAgICBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c0NvbnRhaW5pbmdNZXNzYWdlcy5wdXNoKHNvY2tldCk7CiAgICAgICAgICAgIHNvY2tldC5pblF1ZXVlID0gdHJ1ZQogICAgICAgIH0KICAgIH0KICAgIHZhciBVTkVUV2ViU29ja2V0c0luc3RhbmNlcyA9IHsKICAgICAgICBob3N0czogWywgLCAsICwgLCAsICwgLCAsICwgLCAsICwgLCBdLAogICAgICAgIGhvc3RzQ29udGFpbmluZ01lc3NhZ2VzOiBbXSwKICAgICAgICBwaW5nRGF0YUFycmF5OiBudWxsLAogICAgICAgIEhvc3RTdGF0ZXM6IHsKICAgICAgICAgICAgQ3JlYXRlZDogMCwKICAgICAgICAgICAgT3BlbmluZzogMSwKICAgICAgICAgICAgQ29ubmVjdGVkOiAyLAogICAgICAgICAgICBDbG9zaW5nOiAzLAogICAgICAgICAgICBDbG9zZWQ6IDQKICAgICAgICB9LAogICAgICAgIEV2ZW50VHlwZXM6IHsKICAgICAgICAgICAgRGF0YUV2ZW50OiAwLAogICAgICAgICAgICBDb25uZWN0RXZlbnQ6IDEsCiAgICAgICAgICAgIERpc2Nvbm5lY3RFdmVudDogMiwKICAgICAgICAgICAgTm90aGluZzogMwogICAgICAgIH0KICAgIH07CgogICAgZnVuY3Rpb24gX0pTX1VORVRXZWJTb2NrZXRzX0FkZEhvc3QocGluZ1RpbWVvdXRQYXJhbSkgewogICAgICAgIHZhciBwbGFjZUhvbGRlclNvY2tldCA9IHsKICAgICAgICAgICAgc29ja2V0OiBudWxsLAogICAgICAgICAgICBidWZmZXI6IG5ldyBVaW50OEFycmF5KDApLAogICAgICAgICAgICBlcnJvcjogbnVsbCwKICAgICAgICAgICAgaWQ6IC0xLAogICAgICAgICAgICBzdGF0ZTogVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuSG9zdFN0YXRlcy5DbG9zZWQsCiAgICAgICAgICAgIHBpbmdUaW1lb3V0OiBwaW5nVGltZW91dFBhcmFtLAogICAgICAgICAgICBtZXNzYWdlczogW10KICAgICAgICB9OwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaV0gPT0gbnVsbCkgewogICAgICAgICAgICAgICAgcGxhY2VIb2xkZXJTb2NrZXQuaWQgPSBpOwogICAgICAgICAgICAgICAgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaV0gPSBwbGFjZUhvbGRlclNvY2tldDsKICAgICAgICAgICAgICAgIHJldHVybiBpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIC0xCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1VORVRXZWJTb2NrZXRzX0luaXQoKSB7CiAgICAgICAgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMucGluZ0RhdGFBcnJheSA9IG5ldyBBcnJheUJ1ZmZlcigxKTsKICAgICAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMucGluZ0RhdGFBcnJheSk7CiAgICAgICAgYXJyWzBdID0gMjU1CiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1VORVRXZWJTb2NrZXRzX0lzSG9zdENvcnJlY3QoaSkgewogICAgICAgIGlmIChpIDwgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHMubGVuZ3RoICYmIFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzW2ldICE9IG51bGwgJiYgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaV0uc29ja2V0ICE9IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1VORVRXZWJTb2NrZXRzX0lzSG9zdFJlYWR5VG9Db25uZWN0KGkpIHsKICAgICAgICBpZiAoaSA8IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzLmxlbmd0aCAmJiBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c1tpXSAhPSBudWxsICYmIFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzW2ldLnNvY2tldCA9PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlCiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRDbGVhbkV2bnQoKSB7CiAgICAgICAgdmFyIGhvc3QgPSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c0NvbnRhaW5pbmdNZXNzYWdlcy5zaGlmdCgpOwogICAgICAgIGhvc3QuaW5RdWV1ZSA9IGZhbHNlOwogICAgICAgIGlmIChob3N0LnN0YXRlID09IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkhvc3RTdGF0ZXMuT3BlbmluZykgewogICAgICAgICAgICBob3N0LnN0YXRlID0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuSG9zdFN0YXRlcy5Db25uZWN0ZWQ7CiAgICAgICAgICAgIGlmIChob3N0Lm1lc3NhZ2VzLmxlbmd0aCAhPSAwKSBfSlNfVU5FVFdlYlNvY2tldHNfSG9zdHNDb250YWluaW5nTWVzc2FnZXNQdXNoKGhvc3QpCiAgICAgICAgfSBlbHNlIGlmIChob3N0LnN0YXRlID09IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkhvc3RTdGF0ZXMuQ2xvc2luZykgewogICAgICAgICAgICBpZiAoaG9zdC5tZXNzYWdlcy5sZW5ndGggPT0gMCkgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaG9zdC5pZF0gPSBudWxsOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGhvc3QubWVzc2FnZXMuc2hpZnQoKTsKICAgICAgICAgICAgICAgIGlmIChob3N0Lm1lc3NhZ2VzLmxlbmd0aCAhPSAwKSBfSlNfVU5FVFdlYlNvY2tldHNfSG9zdHNDb250YWluaW5nTWVzc2FnZXNQdXNoKGhvc3QpCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBob3N0Lm1lc3NhZ2VzLnNoaWZ0KCk7CiAgICAgICAgICAgIGlmIChob3N0Lm1lc3NhZ2VzLmxlbmd0aCAhPSAwKSBfSlNfVU5FVFdlYlNvY2tldHNfSG9zdHNDb250YWluaW5nTWVzc2FnZXNQdXNoKGhvc3QpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRDbGVhbkV2bnRGcm9tSG9zdChob3N0SWQpIHsKICAgICAgICBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaG9zdElkXS5zdGF0ZSA9PSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5Ib3N0U3RhdGVzLk9wZW5pbmcpIFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzW2hvc3RJZF0uc3RhdGUgPSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5Ib3N0U3RhdGVzLkNvbm5lY3RlZDsKICAgICAgICBlbHNlIGlmIChVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c1tob3N0SWRdLm1lc3NhZ2VzLmxlbmd0aCAhPSAwKSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c1tob3N0SWRdLm1lc3NhZ2VzLnNoaWZ0KCk7CiAgICAgICAgZWxzZSBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaG9zdElkXS5zdGF0ZSA9PSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5Ib3N0U3RhdGVzLkNsb3NpbmcpIHsKICAgICAgICAgICAgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaG9zdElkXS5zdGF0ZSA9IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkhvc3RTdGF0ZXMuQ2xvc2VkOwogICAgICAgICAgICBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c1tob3N0SWRdID0gbnVsbDsKICAgICAgICAgICAgX0pTX1VORVRXZWJTb2NrZXRzX0hvc3RzQ29udGFpbmluZ01lc3NhZ2VzQ2xlYW5Ib3N0KGhvc3RJZCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldENsb3NlKGhvc3RJZCkgewogICAgICAgIHZhciBzb2NrZXQgPSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c1tob3N0SWRdOwogICAgICAgIGlmIChzb2NrZXQuc29ja2V0ICE9IG51bGwpIHNvY2tldC5zb2NrZXQuY2xvc2UoKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRDcmVhdGUoaG9zdElkLCB1cmwpIHsKICAgICAgICB2YXIgc3RyID0gUG9pbnRlcl9zdHJpbmdpZnkodXJsKTsKCiAgICAgICAgZnVuY3Rpb24ga2VlcEFsaXZlKHNvY2tldCkgewogICAgICAgICAgICB2YXIgbm93ID0gRGF0ZS5ub3coKTsKICAgICAgICAgICAgdmFyIGFiID0gbmV3IEFycmF5QnVmZmVyKDEpOwogICAgICAgICAgICB2YXIgcERhdGEgPSBuZXcgVWludDhBcnJheShhYik7CiAgICAgICAgICAgIHBEYXRhWzBdID0gMjU1OwogICAgICAgICAgICBpZiAobm93IC0gc29ja2V0Lmxhc3RTZW50VGltZSA+IHNvY2tldC5waW5nVGltZW91dCkgewogICAgICAgICAgICAgICAgc29ja2V0LnNvY2tldC5zZW5kKFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLnBpbmdEYXRhQXJyYXkpOwogICAgICAgICAgICAgICAgc29ja2V0Lmxhc3RTZW50VGltZSA9IG5vdwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjYW5jZWxLZWVwQWxpdmUoc29ja2V0KSB7CiAgICAgICAgICAgIGlmIChzb2NrZXQudGltZXJJRCkgewogICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHNvY2tldC50aW1lcklEKTsKICAgICAgICAgICAgICAgIHNvY2tldC50aW1lcklEID0gMAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZhciBzb2NrZXQgPSB7CiAgICAgICAgICAgIHNvY2tldDogbmV3IFdlYlNvY2tldChzdHIsIFsidW5pdHlnYW1lIl0pLAogICAgICAgICAgICBidWZmZXI6IG5ldyBVaW50OEFycmF5KDApLAogICAgICAgICAgICBlcnJvcjogbnVsbCwKICAgICAgICAgICAgaWQ6IGhvc3RJZCwKICAgICAgICAgICAgc3RhdGU6IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkhvc3RTdGF0ZXMuQ3JlYXRlZCwKICAgICAgICAgICAgaW5RdWV1ZTogZmFsc2UsCiAgICAgICAgICAgIHRpbWVySUQ6IDAsCiAgICAgICAgICAgIHBpbmdUaW1lb3V0OiAwLAogICAgICAgICAgICBsYXN0U2VudFRpbWU6IERhdGUubm93KCksCiAgICAgICAgICAgIG1lc3NhZ2VzOiBbXQogICAgICAgIH07CiAgICAgICAgc29ja2V0LnNvY2tldC5vbm9wZW4gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHNvY2tldC5zdGF0ZSA9IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkhvc3RTdGF0ZXMuT3BlbmluZzsKICAgICAgICAgICAgX0pTX1VORVRXZWJTb2NrZXRzX0hvc3RzQ29udGFpbmluZ01lc3NhZ2VzUHVzaChzb2NrZXQpOwogICAgICAgICAgICBzb2NrZXQudGltZXJJRCA9IHNldEludGVydmFsKChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGtlZXBBbGl2ZShzb2NrZXQpCiAgICAgICAgICAgIH0pLCBzb2NrZXQucGluZ1RpbWVvdXQpCiAgICAgICAgfSk7CiAgICAgICAgc29ja2V0LnNvY2tldC5vbm1lc3NhZ2UgPSAoZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS5kYXRhIGluc3RhbmNlb2YgQmxvYikgewogICAgICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyOwogICAgICAgICAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLCAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkocmVhZGVyLnJlc3VsdCk7CiAgICAgICAgICAgICAgICAgICAgX0pTX1VORVRXZWJTb2NrZXRzX0hvc3RzQ29udGFpbmluZ01lc3NhZ2VzUHVzaChzb2NrZXQpOwogICAgICAgICAgICAgICAgICAgIGlmIChhcnJheS5sZW5ndGggPT0gMSAmJiBhcnJheVswXSA9PSAyNTUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHNvY2tldC5tZXNzYWdlcy5wdXNoKGFycmF5KQogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGUuZGF0YSkKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHNvY2tldC5zb2NrZXQub25jbG9zZSA9IChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGNhbmNlbEtlZXBBbGl2ZShzb2NrZXQpOwogICAgICAgICAgICBpZiAoc29ja2V0LnN0YXRlID09IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkhvc3RTdGF0ZXMuQ2xvc2VkKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQogICAgICAgICAgICBzb2NrZXQuc3RhdGUgPSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5Ib3N0U3RhdGVzLkNsb3Npbmc7CiAgICAgICAgICAgIF9KU19VTkVUV2ViU29ja2V0c19Ib3N0c0NvbnRhaW5pbmdNZXNzYWdlc1B1c2goc29ja2V0KQogICAgICAgIH0pOwogICAgICAgIHNvY2tldC5zb2NrZXQub25lcnJvciA9IChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJFcnJvcjogIiArIGUuZGF0YSArICIgc29ja2V0IHdpbGwgYmUgY2xvc2VkIik7CiAgICAgICAgICAgIHNvY2tldC5zdGF0ZSA9IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkhvc3RTdGF0ZXMuQ2xvc2luZzsKICAgICAgICAgICAgX0pTX1VORVRXZWJTb2NrZXRzX0hvc3RzQ29udGFpbmluZ01lc3NhZ2VzUHVzaChzb2NrZXQpCiAgICAgICAgfSk7CiAgICAgICAgc29ja2V0LnBpbmdUaW1lb3V0ID0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbc29ja2V0LmlkXS5waW5nVGltZW91dDsKICAgICAgICBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c1tzb2NrZXQuaWRdID0gc29ja2V0CiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldFJlY3ZFdm50QnVmZihwdHIsIGxlbmd0aCkgewogICAgICAgIEhFQVBVOC5zZXQoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXNbMF0ubWVzc2FnZXNbMF0sIHB0cikKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfVU5FVFdlYlNvY2tldHNfU29ja2V0UmVjdkV2bnRCdWZmRnJvbUhvc3QoaG9zdElkLCBwdHIsIGxlbmd0aCkgewogICAgICAgIEhFQVBVOC5zZXQoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaG9zdElkXS5tZXNzYWdlc1swXSwgcHRyKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudEJ1ZmZMZW5ndGgoKSB7CiAgICAgICAgcmV0dXJuIFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzQ29udGFpbmluZ01lc3NhZ2VzWzBdLm1lc3NhZ2VzWzBdLmxlbmd0aAogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudEJ1ZmZMZW5ndGhGcm9tSG9zdChob3N0SWQpIHsKICAgICAgICByZXR1cm4gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaG9zdElkXS5tZXNzYWdlc1swXS5sZW5ndGgKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfVU5FVFdlYlNvY2tldHNfU29ja2V0UmVjdkV2bnRIb3N0KCkgewogICAgICAgIHJldHVybiBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c0NvbnRhaW5pbmdNZXNzYWdlc1swXS5pZAogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudFR5cGUoKSB7CiAgICAgICAgaWYgKFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzQ29udGFpbmluZ01lc3NhZ2VzLmxlbmd0aCA9PSAwKSByZXR1cm4gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuRXZlbnRUeXBlcy5Ob3RoaW5nOwogICAgICAgIHdoaWxlIChVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c0NvbnRhaW5pbmdNZXNzYWdlcy5sZW5ndGggIT0gMCkgewogICAgICAgICAgICBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXNbMF0gPT0gbnVsbCkgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXMuc2hpZnQoKTsKICAgICAgICAgICAgZWxzZSBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXNbMF0uc3RhdGUgPT0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuSG9zdFN0YXRlcy5DbG9zZWQpIFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzQ29udGFpbmluZ01lc3NhZ2VzLnNoaWZ0KCk7CiAgICAgICAgICAgIGVsc2UgaWYgKFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzQ29udGFpbmluZ01lc3NhZ2VzWzBdLnN0YXRlID09IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkhvc3RTdGF0ZXMuT3BlbmluZykgYnJlYWs7CiAgICAgICAgICAgIGVsc2UgaWYgKFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzQ29udGFpbmluZ01lc3NhZ2VzWzBdLnN0YXRlID09IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkhvc3RTdGF0ZXMuQ2xvc2luZykgYnJlYWs7CiAgICAgICAgICAgIGVsc2UgaWYgKFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzQ29udGFpbmluZ01lc3NhZ2VzWzBdLm1lc3NhZ2VzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgICBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c0NvbnRhaW5pbmdNZXNzYWdlc1swXS5pblF1ZXVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c0NvbnRhaW5pbmdNZXNzYWdlcy5zaGlmdCgpCiAgICAgICAgICAgIH0gZWxzZSBicmVhawogICAgICAgIH0KICAgICAgICBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXMubGVuZ3RoID09IDApIHJldHVybiBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5FdmVudFR5cGVzLk5vdGhpbmc7CiAgICAgICAgZWxzZSBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXNbMF0uc3RhdGUgPT0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuSG9zdFN0YXRlcy5PcGVuaW5nKSByZXR1cm4gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuRXZlbnRUeXBlcy5Db25uZWN0RXZlbnQ7CiAgICAgICAgZWxzZSBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXNbMF0uc3RhdGUgPT0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuSG9zdFN0YXRlcy5DbG9zaW5nICYmIFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzQ29udGFpbmluZ01lc3NhZ2VzWzBdLm1lc3NhZ2VzLmxlbmd0aCA9PSAwKSByZXR1cm4gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuRXZlbnRUeXBlcy5EaXNjb25uZWN0RXZlbnQ7CiAgICAgICAgZWxzZSByZXR1cm4gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuRXZlbnRUeXBlcy5EYXRhRXZlbnQKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfVU5FVFdlYlNvY2tldHNfU29ja2V0UmVjdkV2bnRUeXBlRnJvbUhvc3QoaG9zdElkKSB7CiAgICAgICAgdmFyIGV2bnQgPSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5FdmVudFR5cGVzLk5vdGhpbmc7CiAgICAgICAgaWYgKFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzW2hvc3RJZF0uc3RhdGUgPT0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuSG9zdFN0YXRlcy5PcGVuaW5nKSBldm50ID0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuRXZlbnRUeXBlcy5Db25uZWN0RXZlbnQ7CiAgICAgICAgZWxzZSBpZiAoVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaG9zdElkXS5tZXNzYWdlcy5sZW5ndGggIT0gMCkgZXZudCA9IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLkV2ZW50VHlwZXMuRGF0YUV2ZW50OwogICAgICAgIGVsc2UgaWYgKFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzW2hvc3RJZF0uc3RhdGUgPT0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuSG9zdFN0YXRlcy5DbG9zaW5nKSBldm50ID0gVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuRXZlbnRUeXBlcy5EaXNjb25uZWN0RXZlbnQ7CiAgICAgICAgcmV0dXJuIGV2bnQKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfVU5FVFdlYlNvY2tldHNfU29ja2V0U2VuZChob3N0SWQsIHB0ciwgbGVuZ3RoKSB7CiAgICAgICAgdmFyIHNvY2tldCA9IFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzW2hvc3RJZF07CiAgICAgICAgaWYgKHNvY2tldCA9PSAwIHx8IHNvY2tldC5zb2NrZXQucmVhZHlTdGF0ZSAhPSAxIHx8IHNvY2tldC5zdGF0ZSAhPSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5Ib3N0U3RhdGVzLkNvbm5lY3RlZCkgcmV0dXJuOwogICAgICAgIHNvY2tldC5zb2NrZXQuc2VuZChIRUFQVTguYnVmZmVyLnNsaWNlKHB0ciwgcHRyICsgbGVuZ3RoKSk7CiAgICAgICAgc29ja2V0Lmxhc3RTZW50VGltZSA9IERhdGUubm93KCkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfVU5FVFdlYlNvY2tldHNfU29ja2V0U3RvcCgpIHsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzW2ldICE9IG51bGwgJiYgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNbaV0uc29ja2V0ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHZhciBzb2NrZXQgPSBVTkVUV2ViU29ja2V0c0luc3RhbmNlcy5ob3N0c1tpXTsKICAgICAgICAgICAgICAgIHNvY2tldC5zb2NrZXQuY2xvc2UoKTsKICAgICAgICAgICAgICAgIFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzW2ldID0gbnVsbAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzID0gbmV3IEFycmF5KFVORVRXZWJTb2NrZXRzSW5zdGFuY2VzLmhvc3RzLmxlbmd0aCk7CiAgICAgICAgVU5FVFdlYlNvY2tldHNJbnN0YW5jZXMuaG9zdHNDb250YWluaW5nTWVzc2FnZXMgPSBuZXcgQXJyYXkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfV2ViR0xfSW5pdENvbnRleHRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpIHsKICAgICAgICBIRUFQMzJbYXR0cmlidXRlcyA+PiAyXSA9IDE7CiAgICAgICAgSEVBUDMyW2F0dHJpYnV0ZXMgKyA0ID4+IDJdID0gMTsKICAgICAgICBIRUFQMzJbYXR0cmlidXRlcyArIDggPj4gMl0gPSAxOwogICAgICAgIEhFQVAzMlthdHRyaWJ1dGVzICsgMTIgPj4gMl0gPSAwOwogICAgICAgIEhFQVAzMlthdHRyaWJ1dGVzICsgMTYgPj4gMl0gPSBNb2R1bGUud2ViZ2xDb250ZXh0QXR0cmlidXRlcy5wcmVtdWx0aXBsaWVkQWxwaGE7CiAgICAgICAgSEVBUDMyW2F0dHJpYnV0ZXMgKyAyMCA+PiAyXSA9IE1vZHVsZS53ZWJnbENvbnRleHRBdHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcjsKICAgICAgICBIRUFQMzJbYXR0cmlidXRlcyArIDI0ID4+IDJdID0gMDsKICAgICAgICBIRUFQMzJbYXR0cmlidXRlcyArIDI4ID4+IDJdID0gMDsKICAgICAgICBIRUFQMzJbYXR0cmlidXRlcyArIDMyID4+IDJdID0gMTsKICAgICAgICBIRUFQMzJbYXR0cmlidXRlcyArIDM2ID4+IDJdID0gMDsKICAgICAgICBIRUFQMzJbYXR0cmlidXRlcyArIDQwID4+IDJdID0gMTsKICAgICAgICBIRUFQMzJbYXR0cmlidXRlcyArIDQ0ID4+IDJdID0gMDsKICAgICAgICByZXR1cm4gMAogICAgfQogICAgdmFyIHdyID0gewogICAgICAgIHJlcXVlc3RJbnN0YW5jZXM6IHt9LAogICAgICAgIG5leHRSZXF1ZXN0SWQ6IDEKICAgIH07CgogICAgZnVuY3Rpb24gX0pTX1dlYlJlcXVlc3RfQWJvcnQocmVxdWVzdCkgewogICAgICAgIHdyLnJlcXVlc3RJbnN0YW5jZXNbcmVxdWVzdF0uYWJvcnQoKQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19XZWJSZXF1ZXN0X0NyZWF0ZSh1cmwsIG1ldGhvZCkgewogICAgICAgIHZhciBodHRwID0gbmV3IFhNTEh0dHBSZXF1ZXN0OwogICAgICAgIHZhciBfdXJsID0gUG9pbnRlcl9zdHJpbmdpZnkodXJsKTsKICAgICAgICB2YXIgX21ldGhvZCA9IFBvaW50ZXJfc3RyaW5naWZ5KG1ldGhvZCk7CiAgICAgICAgaHR0cC5vcGVuKF9tZXRob2QsIF91cmwsIHRydWUpOwogICAgICAgIGh0dHAucmVzcG9uc2VUeXBlID0gImFycmF5YnVmZmVyIjsKICAgICAgICB3ci5yZXF1ZXN0SW5zdGFuY2VzW3dyLm5leHRSZXF1ZXN0SWRdID0gaHR0cDsKICAgICAgICByZXR1cm4gd3IubmV4dFJlcXVlc3RJZCsrCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1dlYlJlcXVlc3RfR2V0UmVzcG9uc2VIZWFkZXJzKHJlcXVlc3QsIGJ1ZmZlciwgYnVmZmVyU2l6ZSkgewogICAgICAgIHZhciBoZWFkZXJzID0gd3IucmVxdWVzdEluc3RhbmNlc1tyZXF1ZXN0XS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKICAgICAgICBpZiAoYnVmZmVyKSBzdHJpbmdUb1VURjgoaGVhZGVycywgYnVmZmVyLCBidWZmZXJTaXplKTsKICAgICAgICByZXR1cm4gbGVuZ3RoQnl0ZXNVVEY4KGhlYWRlcnMpCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1dlYlJlcXVlc3RfUmVsZWFzZShyZXF1ZXN0KSB7CiAgICAgICAgdmFyIGh0dHAgPSB3ci5yZXF1ZXN0SW5zdGFuY2VzW3JlcXVlc3RdOwogICAgICAgIGh0dHAub25sb2FkID0gbnVsbDsKICAgICAgICBodHRwLm9uZXJyb3IgPSBudWxsOwogICAgICAgIGh0dHAub250aW1lb3V0ID0gbnVsbDsKICAgICAgICBodHRwLm9uYWJvcnQgPSBudWxsOwogICAgICAgIGRlbGV0ZSBodHRwOwogICAgICAgIHdyLnJlcXVlc3RJbnN0YW5jZXNbcmVxdWVzdF0gPSBudWxsCiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1dlYlJlcXVlc3RfU2VuZChyZXF1ZXN0LCBwdHIsIGxlbmd0aCkgewogICAgICAgIHZhciBodHRwID0gd3IucmVxdWVzdEluc3RhbmNlc1tyZXF1ZXN0XTsKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAobGVuZ3RoID4gMCkgaHR0cC5zZW5kKEhFQVBVOC5zdWJhcnJheShwdHIsIHB0ciArIGxlbmd0aCkpOwogICAgICAgICAgICBlbHNlIGh0dHAuc2VuZCgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBjb25zb2xlLmVycm9yKGUubmFtZSArICI6ICIgKyBlLm1lc3NhZ2UpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9KU19XZWJSZXF1ZXN0X1NldFByb2dyZXNzSGFuZGxlcihyZXF1ZXN0LCBhcmcsIG9ucHJvZ3Jlc3MpIHsKICAgICAgICB2YXIgaHR0cCA9IHdyLnJlcXVlc3RJbnN0YW5jZXNbcmVxdWVzdF07CiAgICAgICAgaHR0cC5vbnByb2dyZXNzID0gZnVuY3Rpb24gaHR0cF9vbnByb2dyZXNzKGUpIHsKICAgICAgICAgICAgaWYgKG9ucHJvZ3Jlc3MpIHsKICAgICAgICAgICAgICAgIGlmIChlLmxlbmd0aENvbXB1dGFibGUpIGR5bkNhbGwoInZpaWkiLCBvbnByb2dyZXNzLCBbYXJnLCBlLmxvYWRlZCwgZS50b3RhbF0pCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX0pTX1dlYlJlcXVlc3RfU2V0UmVxdWVzdEhlYWRlcihyZXF1ZXN0LCBoZWFkZXIsIHZhbHVlKSB7CiAgICAgICAgdmFyIF9oZWFkZXIgPSBQb2ludGVyX3N0cmluZ2lmeShoZWFkZXIpOwogICAgICAgIHZhciBfdmFsdWUgPSBQb2ludGVyX3N0cmluZ2lmeSh2YWx1ZSk7CiAgICAgICAgd3IucmVxdWVzdEluc3RhbmNlc1tyZXF1ZXN0XS5zZXRSZXF1ZXN0SGVhZGVyKF9oZWFkZXIsIF92YWx1ZSkKICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfV2ViUmVxdWVzdF9TZXRSZXNwb25zZUhhbmRsZXIocmVxdWVzdCwgYXJnLCBvbnJlc3BvbnNlKSB7CiAgICAgICAgdmFyIGh0dHAgPSB3ci5yZXF1ZXN0SW5zdGFuY2VzW3JlcXVlc3RdOwogICAgICAgIGh0dHAub25sb2FkID0gZnVuY3Rpb24gaHR0cF9vbmxvYWQoZSkgewogICAgICAgICAgICBpZiAob25yZXNwb25zZSkgewogICAgICAgICAgICAgICAgdmFyIGtXZWJSZXF1ZXN0T0sgPSAwOwogICAgICAgICAgICAgICAgdmFyIGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGh0dHAucmVzcG9uc2UpOwogICAgICAgICAgICAgICAgaWYgKGJ5dGVBcnJheS5sZW5ndGggIT0gMCkgewogICAgICAgICAgICAgICAgICAgIHZhciBidWZmZXIgPSBfbWFsbG9jKGJ5dGVBcnJheS5sZW5ndGgpOwogICAgICAgICAgICAgICAgICAgIEhFQVBVOC5zZXQoYnl0ZUFycmF5LCBidWZmZXIpOwogICAgICAgICAgICAgICAgICAgIGR5bkNhbGwoInZpaWlpaWkiLCBvbnJlc3BvbnNlLCBbYXJnLCBodHRwLnN0YXR1cywgYnVmZmVyLCBieXRlQXJyYXkubGVuZ3RoLCAwLCBrV2ViUmVxdWVzdE9LXSkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZHluQ2FsbCgidmlpaWlpaSIsIG9ucmVzcG9uc2UsIFthcmcsIGh0dHAuc3RhdHVzLCAwLCAwLCAwLCBrV2ViUmVxdWVzdE9LXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIGZ1bmN0aW9uIEhhbmRsZUVycm9yKGVyciwgY29kZSkgewogICAgICAgICAgICBpZiAob25yZXNwb25zZSkgewogICAgICAgICAgICAgICAgdmFyIGxlbiA9IGxlbmd0aEJ5dGVzVVRGOChlcnIpICsgMTsKICAgICAgICAgICAgICAgIHZhciBidWZmZXIgPSBfbWFsbG9jKGxlbik7CiAgICAgICAgICAgICAgICBzdHJpbmdUb1VURjgoZXJyLCBidWZmZXIsIGxlbik7CiAgICAgICAgICAgICAgICBkeW5DYWxsKCJ2aWlpaWlpIiwgb25yZXNwb25zZSwgW2FyZywgaHR0cC5zdGF0dXMsIDAsIDAsIGJ1ZmZlciwgY29kZV0pOwogICAgICAgICAgICAgICAgX2ZyZWUoYnVmZmVyKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGh0dHAub25lcnJvciA9IGZ1bmN0aW9uIGh0dHBfb25lcnJvcihlKSB7CiAgICAgICAgICAgIHZhciBrV2ViRXJyb3JVbmtub3duID0gMjsKICAgICAgICAgICAgSGFuZGxlRXJyb3IoIlVua25vd24gZXJyb3IuIiwga1dlYkVycm9yVW5rbm93bikKICAgICAgICB9OwogICAgICAgIGh0dHAub250aW1lb3V0ID0gZnVuY3Rpb24gaHR0cF9vbmVycm9yKGUpIHsKICAgICAgICAgICAgdmFyIGtXZWJFcnJvclRpbWVvdXQgPSAxNDsKICAgICAgICAgICAgSGFuZGxlRXJyb3IoIkNvbm5lY3Rpb24gdGltZWQgb3V0LiIsIGtXZWJFcnJvclRpbWVvdXQpCiAgICAgICAgfTsKICAgICAgICBodHRwLm9uYWJvcnQgPSBmdW5jdGlvbiBodHRwX29uZXJyb3IoZSkgewogICAgICAgICAgICB2YXIga1dlYkVycm9yQWJvcnRlZCA9IDE3OwogICAgICAgICAgICBIYW5kbGVFcnJvcigiQWJvcnRlZC4iLCBrV2ViRXJyb3JBYm9ydGVkKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfSlNfV2ViUmVxdWVzdF9TZXRUaW1lb3V0KHJlcXVlc3QsIHRpbWVvdXQpIHsKICAgICAgICB3ci5yZXF1ZXN0SW5zdGFuY2VzW3JlcXVlc3RdLnRpbWVvdXQgPSB0aW1lb3V0CiAgICB9CiAgICB2YXIgRVJSTk9fQ09ERVMgPSB7CiAgICAgICAgRVBFUk06IDEsCiAgICAgICAgRU5PRU5UOiAyLAogICAgICAgIEVTUkNIOiAzLAogICAgICAgIEVJTlRSOiA0LAogICAgICAgIEVJTzogNSwKICAgICAgICBFTlhJTzogNiwKICAgICAgICBFMkJJRzogNywKICAgICAgICBFTk9FWEVDOiA4LAogICAgICAgIEVCQURGOiA5LAogICAgICAgIEVDSElMRDogMTAsCiAgICAgICAgRUFHQUlOOiAxMSwKICAgICAgICBFV09VTERCTE9DSzogMTEsCiAgICAgICAgRU5PTUVNOiAxMiwKICAgICAgICBFQUNDRVM6IDEzLAogICAgICAgIEVGQVVMVDogMTQsCiAgICAgICAgRU5PVEJMSzogMTUsCiAgICAgICAgRUJVU1k6IDE2LAogICAgICAgIEVFWElTVDogMTcsCiAgICAgICAgRVhERVY6IDE4LAogICAgICAgIEVOT0RFVjogMTksCiAgICAgICAgRU5PVERJUjogMjAsCiAgICAgICAgRUlTRElSOiAyMSwKICAgICAgICBFSU5WQUw6IDIyLAogICAgICAgIEVORklMRTogMjMsCiAgICAgICAgRU1GSUxFOiAyNCwKICAgICAgICBFTk9UVFk6IDI1LAogICAgICAgIEVUWFRCU1k6IDI2LAogICAgICAgIEVGQklHOiAyNywKICAgICAgICBFTk9TUEM6IDI4LAogICAgICAgIEVTUElQRTogMjksCiAgICAgICAgRVJPRlM6IDMwLAogICAgICAgIEVNTElOSzogMzEsCiAgICAgICAgRVBJUEU6IDMyLAogICAgICAgIEVET006IDMzLAogICAgICAgIEVSQU5HRTogMzQsCiAgICAgICAgRU5PTVNHOiA0MiwKICAgICAgICBFSURSTTogNDMsCiAgICAgICAgRUNIUk5HOiA0NCwKICAgICAgICBFTDJOU1lOQzogNDUsCiAgICAgICAgRUwzSExUOiA0NiwKICAgICAgICBFTDNSU1Q6IDQ3LAogICAgICAgIEVMTlJORzogNDgsCiAgICAgICAgRVVOQVRDSDogNDksCiAgICAgICAgRU5PQ1NJOiA1MCwKICAgICAgICBFTDJITFQ6IDUxLAogICAgICAgIEVERUFETEs6IDM1LAogICAgICAgIEVOT0xDSzogMzcsCiAgICAgICAgRUJBREU6IDUyLAogICAgICAgIEVCQURSOiA1MywKICAgICAgICBFWEZVTEw6IDU0LAogICAgICAgIEVOT0FOTzogNTUsCiAgICAgICAgRUJBRFJRQzogNTYsCiAgICAgICAgRUJBRFNMVDogNTcsCiAgICAgICAgRURFQURMT0NLOiAzNSwKICAgICAgICBFQkZPTlQ6IDU5LAogICAgICAgIEVOT1NUUjogNjAsCiAgICAgICAgRU5PREFUQTogNjEsCiAgICAgICAgRVRJTUU6IDYyLAogICAgICAgIEVOT1NSOiA2MywKICAgICAgICBFTk9ORVQ6IDY0LAogICAgICAgIEVOT1BLRzogNjUsCiAgICAgICAgRVJFTU9URTogNjYsCiAgICAgICAgRU5PTElOSzogNjcsCiAgICAgICAgRUFEVjogNjgsCiAgICAgICAgRVNSTU5UOiA2OSwKICAgICAgICBFQ09NTTogNzAsCiAgICAgICAgRVBST1RPOiA3MSwKICAgICAgICBFTVVMVElIT1A6IDcyLAogICAgICAgIEVET1RET1Q6IDczLAogICAgICAgIEVCQURNU0c6IDc0LAogICAgICAgIEVOT1RVTklROiA3NiwKICAgICAgICBFQkFERkQ6IDc3LAogICAgICAgIEVSRU1DSEc6IDc4LAogICAgICAgIEVMSUJBQ0M6IDc5LAogICAgICAgIEVMSUJCQUQ6IDgwLAogICAgICAgIEVMSUJTQ046IDgxLAogICAgICAgIEVMSUJNQVg6IDgyLAogICAgICAgIEVMSUJFWEVDOiA4MywKICAgICAgICBFTk9TWVM6IDM4LAogICAgICAgIEVOT1RFTVBUWTogMzksCiAgICAgICAgRU5BTUVUT09MT05HOiAzNiwKICAgICAgICBFTE9PUDogNDAsCiAgICAgICAgRU9QTk9UU1VQUDogOTUsCiAgICAgICAgRVBGTk9TVVBQT1JUOiA5NiwKICAgICAgICBFQ09OTlJFU0VUOiAxMDQsCiAgICAgICAgRU5PQlVGUzogMTA1LAogICAgICAgIEVBRk5PU1VQUE9SVDogOTcsCiAgICAgICAgRVBST1RPVFlQRTogOTEsCiAgICAgICAgRU5PVFNPQ0s6IDg4LAogICAgICAgIEVOT1BST1RPT1BUOiA5MiwKICAgICAgICBFU0hVVERPV046IDEwOCwKICAgICAgICBFQ09OTlJFRlVTRUQ6IDExMSwKICAgICAgICBFQUREUklOVVNFOiA5OCwKICAgICAgICBFQ09OTkFCT1JURUQ6IDEwMywKICAgICAgICBFTkVUVU5SRUFDSDogMTAxLAogICAgICAgIEVORVRET1dOOiAxMDAsCiAgICAgICAgRVRJTUVET1VUOiAxMTAsCiAgICAgICAgRUhPU1RET1dOOiAxMTIsCiAgICAgICAgRUhPU1RVTlJFQUNIOiAxMTMsCiAgICAgICAgRUlOUFJPR1JFU1M6IDExNSwKICAgICAgICBFQUxSRUFEWTogMTE0LAogICAgICAgIEVERVNUQUREUlJFUTogODksCiAgICAgICAgRU1TR1NJWkU6IDkwLAogICAgICAgIEVQUk9UT05PU1VQUE9SVDogOTMsCiAgICAgICAgRVNPQ0tUTk9TVVBQT1JUOiA5NCwKICAgICAgICBFQUREUk5PVEFWQUlMOiA5OSwKICAgICAgICBFTkVUUkVTRVQ6IDEwMiwKICAgICAgICBFSVNDT05OOiAxMDYsCiAgICAgICAgRU5PVENPTk46IDEwNywKICAgICAgICBFVE9PTUFOWVJFRlM6IDEwOSwKICAgICAgICBFVVNFUlM6IDg3LAogICAgICAgIEVEUVVPVDogMTIyLAogICAgICAgIEVTVEFMRTogMTE2LAogICAgICAgIEVOT1RTVVA6IDk1LAogICAgICAgIEVOT01FRElVTTogMTIzLAogICAgICAgIEVJTFNFUTogODQsCiAgICAgICAgRU9WRVJGTE9XOiA3NSwKICAgICAgICBFQ0FOQ0VMRUQ6IDEyNSwKICAgICAgICBFTk9UUkVDT1ZFUkFCTEU6IDEzMSwKICAgICAgICBFT1dORVJERUFEOiAxMzAsCiAgICAgICAgRVNUUlBJUEU6IDg2CiAgICB9OwogICAgdmFyIEVSUk5PX01FU1NBR0VTID0gewogICAgICAgIDA6ICJTdWNjZXNzIiwKICAgICAgICAxOiAiTm90IHN1cGVyLXVzZXIiLAogICAgICAgIDI6ICJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiwKICAgICAgICAzOiAiTm8gc3VjaCBwcm9jZXNzIiwKICAgICAgICA0OiAiSW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwiLAogICAgICAgIDU6ICJJL08gZXJyb3IiLAogICAgICAgIDY6ICJObyBzdWNoIGRldmljZSBvciBhZGRyZXNzIiwKICAgICAgICA3OiAiQXJnIGxpc3QgdG9vIGxvbmciLAogICAgICAgIDg6ICJFeGVjIGZvcm1hdCBlcnJvciIsCiAgICAgICAgOTogIkJhZCBmaWxlIG51bWJlciIsCiAgICAgICAgMTA6ICJObyBjaGlsZHJlbiIsCiAgICAgICAgMTE6ICJObyBtb3JlIHByb2Nlc3NlcyIsCiAgICAgICAgMTI6ICJOb3QgZW5vdWdoIGNvcmUiLAogICAgICAgIDEzOiAiUGVybWlzc2lvbiBkZW5pZWQiLAogICAgICAgIDE0OiAiQmFkIGFkZHJlc3MiLAogICAgICAgIDE1OiAiQmxvY2sgZGV2aWNlIHJlcXVpcmVkIiwKICAgICAgICAxNjogIk1vdW50IGRldmljZSBidXN5IiwKICAgICAgICAxNzogIkZpbGUgZXhpc3RzIiwKICAgICAgICAxODogIkNyb3NzLWRldmljZSBsaW5rIiwKICAgICAgICAxOTogIk5vIHN1Y2ggZGV2aWNlIiwKICAgICAgICAyMDogIk5vdCBhIGRpcmVjdG9yeSIsCiAgICAgICAgMjE6ICJJcyBhIGRpcmVjdG9yeSIsCiAgICAgICAgMjI6ICJJbnZhbGlkIGFyZ3VtZW50IiwKICAgICAgICAyMzogIlRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtIiwKICAgICAgICAyNDogIlRvbyBtYW55IG9wZW4gZmlsZXMiLAogICAgICAgIDI1OiAiTm90IGEgdHlwZXdyaXRlciIsCiAgICAgICAgMjY6ICJUZXh0IGZpbGUgYnVzeSIsCiAgICAgICAgMjc6ICJGaWxlIHRvbyBsYXJnZSIsCiAgICAgICAgMjg6ICJObyBzcGFjZSBsZWZ0IG9uIGRldmljZSIsCiAgICAgICAgMjk6ICJJbGxlZ2FsIHNlZWsiLAogICAgICAgIDMwOiAiUmVhZCBvbmx5IGZpbGUgc3lzdGVtIiwKICAgICAgICAzMTogIlRvbyBtYW55IGxpbmtzIiwKICAgICAgICAzMjogIkJyb2tlbiBwaXBlIiwKICAgICAgICAzMzogIk1hdGggYXJnIG91dCBvZiBkb21haW4gb2YgZnVuYyIsCiAgICAgICAgMzQ6ICJNYXRoIHJlc3VsdCBub3QgcmVwcmVzZW50YWJsZSIsCiAgICAgICAgMzU6ICJGaWxlIGxvY2tpbmcgZGVhZGxvY2sgZXJyb3IiLAogICAgICAgIDM2OiAiRmlsZSBvciBwYXRoIG5hbWUgdG9vIGxvbmciLAogICAgICAgIDM3OiAiTm8gcmVjb3JkIGxvY2tzIGF2YWlsYWJsZSIsCiAgICAgICAgMzg6ICJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiLAogICAgICAgIDM5OiAiRGlyZWN0b3J5IG5vdCBlbXB0eSIsCiAgICAgICAgNDA6ICJUb28gbWFueSBzeW1ib2xpYyBsaW5rcyIsCiAgICAgICAgNDI6ICJObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZSIsCiAgICAgICAgNDM6ICJJZGVudGlmaWVyIHJlbW92ZWQiLAogICAgICAgIDQ0OiAiQ2hhbm5lbCBudW1iZXIgb3V0IG9mIHJhbmdlIiwKICAgICAgICA0NTogIkxldmVsIDIgbm90IHN5bmNocm9uaXplZCIsCiAgICAgICAgNDY6ICJMZXZlbCAzIGhhbHRlZCIsCiAgICAgICAgNDc6ICJMZXZlbCAzIHJlc2V0IiwKICAgICAgICA0ODogIkxpbmsgbnVtYmVyIG91dCBvZiByYW5nZSIsCiAgICAgICAgNDk6ICJQcm90b2NvbCBkcml2ZXIgbm90IGF0dGFjaGVkIiwKICAgICAgICA1MDogIk5vIENTSSBzdHJ1Y3R1cmUgYXZhaWxhYmxlIiwKICAgICAgICA1MTogIkxldmVsIDIgaGFsdGVkIiwKICAgICAgICA1MjogIkludmFsaWQgZXhjaGFuZ2UiLAogICAgICAgIDUzOiAiSW52YWxpZCByZXF1ZXN0IGRlc2NyaXB0b3IiLAogICAgICAgIDU0OiAiRXhjaGFuZ2UgZnVsbCIsCiAgICAgICAgNTU6ICJObyBhbm9kZSIsCiAgICAgICAgNTY6ICJJbnZhbGlkIHJlcXVlc3QgY29kZSIsCiAgICAgICAgNTc6ICJJbnZhbGlkIHNsb3QiLAogICAgICAgIDU5OiAiQmFkIGZvbnQgZmlsZSBmbXQiLAogICAgICAgIDYwOiAiRGV2aWNlIG5vdCBhIHN0cmVhbSIsCiAgICAgICAgNjE6ICJObyBkYXRhIChmb3Igbm8gZGVsYXkgaW8pIiwKICAgICAgICA2MjogIlRpbWVyIGV4cGlyZWQiLAogICAgICAgIDYzOiAiT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzIiwKICAgICAgICA2NDogIk1hY2hpbmUgaXMgbm90IG9uIHRoZSBuZXR3b3JrIiwKICAgICAgICA2NTogIlBhY2thZ2Ugbm90IGluc3RhbGxlZCIsCiAgICAgICAgNjY6ICJUaGUgb2JqZWN0IGlzIHJlbW90ZSIsCiAgICAgICAgNjc6ICJUaGUgbGluayBoYXMgYmVlbiBzZXZlcmVkIiwKICAgICAgICA2ODogIkFkdmVydGlzZSBlcnJvciIsCiAgICAgICAgNjk6ICJTcm1vdW50IGVycm9yIiwKICAgICAgICA3MDogIkNvbW11bmljYXRpb24gZXJyb3Igb24gc2VuZCIsCiAgICAgICAgNzE6ICJQcm90b2NvbCBlcnJvciIsCiAgICAgICAgNzI6ICJNdWx0aWhvcCBhdHRlbXB0ZWQiLAogICAgICAgIDczOiAiQ3Jvc3MgbW91bnQgcG9pbnQgKG5vdCByZWFsbHkgZXJyb3IpIiwKICAgICAgICA3NDogIlRyeWluZyB0byByZWFkIHVucmVhZGFibGUgbWVzc2FnZSIsCiAgICAgICAgNzU6ICJWYWx1ZSB0b28gbGFyZ2UgZm9yIGRlZmluZWQgZGF0YSB0eXBlIiwKICAgICAgICA3NjogIkdpdmVuIGxvZy4gbmFtZSBub3QgdW5pcXVlIiwKICAgICAgICA3NzogImYuZC4gaW52YWxpZCBmb3IgdGhpcyBvcGVyYXRpb24iLAogICAgICAgIDc4OiAiUmVtb3RlIGFkZHJlc3MgY2hhbmdlZCIsCiAgICAgICAgNzk6ICJDYW4gICBhY2Nlc3MgYSBuZWVkZWQgc2hhcmVkIGxpYiIsCiAgICAgICAgODA6ICJBY2Nlc3NpbmcgYSBjb3JydXB0ZWQgc2hhcmVkIGxpYiIsCiAgICAgICAgODE6ICIubGliIHNlY3Rpb24gaW4gYS5vdXQgY29ycnVwdGVkIiwKICAgICAgICA4MjogIkF0dGVtcHRpbmcgdG8gbGluayBpbiB0b28gbWFueSBsaWJzIiwKICAgICAgICA4MzogIkF0dGVtcHRpbmcgdG8gZXhlYyBhIHNoYXJlZCBsaWJyYXJ5IiwKICAgICAgICA4NDogIklsbGVnYWwgYnl0ZSBzZXF1ZW5jZSIsCiAgICAgICAgODY6ICJTdHJlYW1zIHBpcGUgZXJyb3IiLAogICAgICAgIDg3OiAiVG9vIG1hbnkgdXNlcnMiLAogICAgICAgIDg4OiAiU29ja2V0IG9wZXJhdGlvbiBvbiBub24tc29ja2V0IiwKICAgICAgICA4OTogIkRlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQiLAogICAgICAgIDkwOiAiTWVzc2FnZSB0b28gbG9uZyIsCiAgICAgICAgOTE6ICJQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQiLAogICAgICAgIDkyOiAiUHJvdG9jb2wgbm90IGF2YWlsYWJsZSIsCiAgICAgICAgOTM6ICJVbmtub3duIHByb3RvY29sIiwKICAgICAgICA5NDogIlNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQiLAogICAgICAgIDk1OiAiTm90IHN1cHBvcnRlZCIsCiAgICAgICAgOTY6ICJQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZCIsCiAgICAgICAgOTc6ICJBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sIGZhbWlseSIsCiAgICAgICAgOTg6ICJBZGRyZXNzIGFscmVhZHkgaW4gdXNlIiwKICAgICAgICA5OTogIkFkZHJlc3Mgbm90IGF2YWlsYWJsZSIsCiAgICAgICAgMTAwOiAiTmV0d29yayBpbnRlcmZhY2UgaXMgbm90IGNvbmZpZ3VyZWQiLAogICAgICAgIDEwMTogIk5ldHdvcmsgaXMgdW5yZWFjaGFibGUiLAogICAgICAgIDEwMjogIkNvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yayIsCiAgICAgICAgMTAzOiAiQ29ubmVjdGlvbiBhYm9ydGVkIiwKICAgICAgICAxMDQ6ICJDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIiLAogICAgICAgIDEwNTogIk5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUiLAogICAgICAgIDEwNjogIlNvY2tldCBpcyBhbHJlYWR5IGNvbm5lY3RlZCIsCiAgICAgICAgMTA3OiAiU29ja2V0IGlzIG5vdCBjb25uZWN0ZWQiLAogICAgICAgIDEwODogIkNhbid0IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duIiwKICAgICAgICAxMDk6ICJUb28gbWFueSByZWZlcmVuY2VzIiwKICAgICAgICAxMTA6ICJDb25uZWN0aW9uIHRpbWVkIG91dCIsCiAgICAgICAgMTExOiAiQ29ubmVjdGlvbiByZWZ1c2VkIiwKICAgICAgICAxMTI6ICJIb3N0IGlzIGRvd24iLAogICAgICAgIDExMzogIkhvc3QgaXMgdW5yZWFjaGFibGUiLAogICAgICAgIDExNDogIlNvY2tldCBhbHJlYWR5IGNvbm5lY3RlZCIsCiAgICAgICAgMTE1OiAiQ29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzIiwKICAgICAgICAxMTY6ICJTdGFsZSBmaWxlIGhhbmRsZSIsCiAgICAgICAgMTIyOiAiUXVvdGEgZXhjZWVkZWQiLAogICAgICAgIDEyMzogIk5vIG1lZGl1bSAoaW4gdGFwZSBkcml2ZSkiLAogICAgICAgIDEyNTogIk9wZXJhdGlvbiBjYW5jZWxlZCIsCiAgICAgICAgMTMwOiAiUHJldmlvdXMgb3duZXIgZGllZCIsCiAgICAgICAgMTMxOiAiU3RhdGUgbm90IHJlY292ZXJhYmxlIgogICAgfTsKCiAgICBmdW5jdGlvbiBfX19zZXRFcnJObyh2YWx1ZSkgewogICAgICAgIGlmIChNb2R1bGVbIl9fX2Vycm5vX2xvY2F0aW9uIl0pIEhFQVAzMltNb2R1bGVbIl9fX2Vycm5vX2xvY2F0aW9uIl0oKSA+PiAyXSA9IHZhbHVlOwogICAgICAgIHJldHVybiB2YWx1ZQogICAgfQogICAgdmFyIFBBVEggPSB7CiAgICAgICAgc3BsaXRQYXRoOiAoZnVuY3Rpb24oZmlsZW5hbWUpIHsKICAgICAgICAgICAgdmFyIHNwbGl0UGF0aFJlID0gL14oXC8/fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQvOwogICAgICAgICAgICByZXR1cm4gc3BsaXRQYXRoUmUuZXhlYyhmaWxlbmFtZSkuc2xpY2UoMSkKICAgICAgICB9KSwKICAgICAgICBub3JtYWxpemVBcnJheTogKGZ1bmN0aW9uKHBhcnRzLCBhbGxvd0Fib3ZlUm9vdCkgewogICAgICAgICAgICB2YXIgdXAgPSAwOwogICAgICAgICAgICBmb3IgKHZhciBpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICAgICAgICAgIHZhciBsYXN0ID0gcGFydHNbaV07CiAgICAgICAgICAgICAgICBpZiAobGFzdCA9PT0gIi4iKSB7CiAgICAgICAgICAgICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3QgPT09ICIuLiIpIHsKICAgICAgICAgICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgdXArKwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cCkgewogICAgICAgICAgICAgICAgICAgIHBhcnRzLnNwbGljZShpLCAxKTsKICAgICAgICAgICAgICAgICAgICB1cC0tCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGFsbG93QWJvdmVSb290KSB7CiAgICAgICAgICAgICAgICBmb3IgKDsgdXA7IHVwLS0pIHsKICAgICAgICAgICAgICAgICAgICBwYXJ0cy51bnNoaWZ0KCIuLiIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHBhcnRzCiAgICAgICAgfSksCiAgICAgICAgbm9ybWFsaXplOiAoZnVuY3Rpb24ocGF0aCkgewogICAgICAgICAgICB2YXIgaXNBYnNvbHV0ZSA9IHBhdGguY2hhckF0KDApID09PSAiLyIsCiAgICAgICAgICAgICAgICB0cmFpbGluZ1NsYXNoID0gcGF0aC5zdWJzdHIoLTEpID09PSAiLyI7CiAgICAgICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6ZUFycmF5KHBhdGguc3BsaXQoIi8iKS5maWx0ZXIoKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAgICAgIHJldHVybiAhIXAKICAgICAgICAgICAgfSkpLCAhaXNBYnNvbHV0ZSkuam9pbigiLyIpOwogICAgICAgICAgICBpZiAoIXBhdGggJiYgIWlzQWJzb2x1dGUpIHsKICAgICAgICAgICAgICAgIHBhdGggPSAiLiIKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocGF0aCAmJiB0cmFpbGluZ1NsYXNoKSB7CiAgICAgICAgICAgICAgICBwYXRoICs9ICIvIgogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAoaXNBYnNvbHV0ZSA/ICIvIiA6ICIiKSArIHBhdGgKICAgICAgICB9KSwKICAgICAgICBkaXJuYW1lOiAoZnVuY3Rpb24ocGF0aCkgewogICAgICAgICAgICB2YXIgcmVzdWx0ID0gUEFUSC5zcGxpdFBhdGgocGF0aCksCiAgICAgICAgICAgICAgICByb290ID0gcmVzdWx0WzBdLAogICAgICAgICAgICAgICAgZGlyID0gcmVzdWx0WzFdOwogICAgICAgICAgICBpZiAoIXJvb3QgJiYgIWRpcikgewogICAgICAgICAgICAgICAgcmV0dXJuICIuIgogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkaXIpIHsKICAgICAgICAgICAgICAgIGRpciA9IGRpci5zdWJzdHIoMCwgZGlyLmxlbmd0aCAtIDEpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJvb3QgKyBkaXIKICAgICAgICB9KSwKICAgICAgICBiYXNlbmFtZTogKGZ1bmN0aW9uKHBhdGgpIHsKICAgICAgICAgICAgaWYgKHBhdGggPT09ICIvIikgcmV0dXJuICIvIjsKICAgICAgICAgICAgdmFyIGxhc3RTbGFzaCA9IHBhdGgubGFzdEluZGV4T2YoIi8iKTsKICAgICAgICAgICAgaWYgKGxhc3RTbGFzaCA9PT0gLTEpIHJldHVybiBwYXRoOwogICAgICAgICAgICByZXR1cm4gcGF0aC5zdWJzdHIobGFzdFNsYXNoICsgMSkKICAgICAgICB9KSwKICAgICAgICBleHRuYW1lOiAoZnVuY3Rpb24ocGF0aCkgewogICAgICAgICAgICByZXR1cm4gUEFUSC5zcGxpdFBhdGgocGF0aClbM10KICAgICAgICB9KSwKICAgICAgICBqb2luOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBwYXRocyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7CiAgICAgICAgICAgIHJldHVybiBQQVRILm5vcm1hbGl6ZShwYXRocy5qb2luKCIvIikpCiAgICAgICAgfSksCiAgICAgICAgam9pbjI6IChmdW5jdGlvbihsLCByKSB7CiAgICAgICAgICAgIHJldHVybiBQQVRILm5vcm1hbGl6ZShsICsgIi8iICsgcikKICAgICAgICB9KSwKICAgICAgICByZXNvbHZlOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciByZXNvbHZlZFBhdGggPSAiIiwKICAgICAgICAgICAgICAgIHJlc29sdmVkQWJzb2x1dGUgPSBmYWxzZTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpID49IC0xICYmICFyZXNvbHZlZEFic29sdXRlOyBpLS0pIHsKICAgICAgICAgICAgICAgIHZhciBwYXRoID0gaSA+PSAwID8gYXJndW1lbnRzW2ldIDogRlMuY3dkKCk7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHBhdGggIT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MiKQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghcGF0aCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAiIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcGF0aCArICIvIiArIHJlc29sdmVkUGF0aDsKICAgICAgICAgICAgICAgIHJlc29sdmVkQWJzb2x1dGUgPSBwYXRoLmNoYXJBdCgwKSA9PT0gIi8iCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gUEFUSC5ub3JtYWxpemVBcnJheShyZXNvbHZlZFBhdGguc3BsaXQoIi8iKS5maWx0ZXIoKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAgICAgIHJldHVybiAhIXAKICAgICAgICAgICAgfSkpLCAhcmVzb2x2ZWRBYnNvbHV0ZSkuam9pbigiLyIpOwogICAgICAgICAgICByZXR1cm4gKHJlc29sdmVkQWJzb2x1dGUgPyAiLyIgOiAiIikgKyByZXNvbHZlZFBhdGggfHwgIi4iCiAgICAgICAgfSksCiAgICAgICAgcmVsYXRpdmU6IChmdW5jdGlvbihmcm9tLCB0bykgewogICAgICAgICAgICBmcm9tID0gUEFUSC5yZXNvbHZlKGZyb20pLnN1YnN0cigxKTsKICAgICAgICAgICAgdG8gPSBQQVRILnJlc29sdmUodG8pLnN1YnN0cigxKTsKCiAgICAgICAgICAgIGZ1bmN0aW9uIHRyaW0oYXJyKSB7CiAgICAgICAgICAgICAgICB2YXIgc3RhcnQgPSAwOwogICAgICAgICAgICAgICAgZm9yICg7IHN0YXJ0IDwgYXJyLmxlbmd0aDsgc3RhcnQrKykgewogICAgICAgICAgICAgICAgICAgIGlmIChhcnJbc3RhcnRdICE9PSAiIikgYnJlYWsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBlbmQgPSBhcnIubGVuZ3RoIC0gMTsKICAgICAgICAgICAgICAgIGZvciAoOyBlbmQgPj0gMDsgZW5kLS0pIHsKICAgICAgICAgICAgICAgICAgICBpZiAoYXJyW2VuZF0gIT09ICIiKSBicmVhawogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSByZXR1cm4gW107CiAgICAgICAgICAgICAgICByZXR1cm4gYXJyLnNsaWNlKHN0YXJ0LCBlbmQgLSBzdGFydCArIDEpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGZyb21QYXJ0cyA9IHRyaW0oZnJvbS5zcGxpdCgiLyIpKTsKICAgICAgICAgICAgdmFyIHRvUGFydHMgPSB0cmltKHRvLnNwbGl0KCIvIikpOwogICAgICAgICAgICB2YXIgbGVuZ3RoID0gTWF0aC5taW4oZnJvbVBhcnRzLmxlbmd0aCwgdG9QYXJ0cy5sZW5ndGgpOwogICAgICAgICAgICB2YXIgc2FtZVBhcnRzTGVuZ3RoID0gbGVuZ3RoOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoZnJvbVBhcnRzW2ldICE9PSB0b1BhcnRzW2ldKSB7CiAgICAgICAgICAgICAgICAgICAgc2FtZVBhcnRzTGVuZ3RoID0gaTsKICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBvdXRwdXRQYXJ0cyA9IFtdOwogICAgICAgICAgICBmb3IgKHZhciBpID0gc2FtZVBhcnRzTGVuZ3RoOyBpIDwgZnJvbVBhcnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBvdXRwdXRQYXJ0cy5wdXNoKCIuLiIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgb3V0cHV0UGFydHMgPSBvdXRwdXRQYXJ0cy5jb25jYXQodG9QYXJ0cy5zbGljZShzYW1lUGFydHNMZW5ndGgpKTsKICAgICAgICAgICAgcmV0dXJuIG91dHB1dFBhcnRzLmpvaW4oIi8iKQogICAgICAgIH0pCiAgICB9OwogICAgdmFyIFRUWSA9IHsKICAgICAgICB0dHlzOiBbXSwKICAgICAgICBpbml0OiAoZnVuY3Rpb24oKSB7fSksCiAgICAgICAgc2h1dGRvd246IChmdW5jdGlvbigpIHt9KSwKICAgICAgICByZWdpc3RlcjogKGZ1bmN0aW9uKGRldiwgb3BzKSB7CiAgICAgICAgICAgIFRUWS50dHlzW2Rldl0gPSB7CiAgICAgICAgICAgICAgICBpbnB1dDogW10sCiAgICAgICAgICAgICAgICBvdXRwdXQ6IFtdLAogICAgICAgICAgICAgICAgb3BzOiBvcHMKICAgICAgICAgICAgfTsKICAgICAgICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoZGV2LCBUVFkuc3RyZWFtX29wcykKICAgICAgICB9KSwKICAgICAgICBzdHJlYW1fb3BzOiB7CiAgICAgICAgICAgIG9wZW46IChmdW5jdGlvbihzdHJlYW0pIHsKICAgICAgICAgICAgICAgIHZhciB0dHkgPSBUVFkudHR5c1tzdHJlYW0ubm9kZS5yZGV2XTsKICAgICAgICAgICAgICAgIGlmICghdHR5KSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVWKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc3RyZWFtLnR0eSA9IHR0eTsKICAgICAgICAgICAgICAgIHN0cmVhbS5zZWVrYWJsZSA9IGZhbHNlCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBjbG9zZTogKGZ1bmN0aW9uKHN0cmVhbSkgewogICAgICAgICAgICAgICAgc3RyZWFtLnR0eS5vcHMuZmx1c2goc3RyZWFtLnR0eSkKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGZsdXNoOiAoZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgICAgICAgICAgICBzdHJlYW0udHR5Lm9wcy5mbHVzaChzdHJlYW0udHR5KQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcmVhZDogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zKSB7CiAgICAgICAgICAgICAgICBpZiAoIXN0cmVhbS50dHkgfHwgIXN0cmVhbS50dHkub3BzLmdldF9jaGFyKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5YSU8pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgYnl0ZXNSZWFkID0gMDsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0OwogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHN0cmVhbS50dHkub3BzLmdldF9jaGFyKHN0cmVhbS50dHkpCiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCAmJiBieXRlc1JlYWQgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFHQUlOKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBicmVhazsKICAgICAgICAgICAgICAgICAgICBieXRlc1JlYWQrKzsKICAgICAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgaV0gPSByZXN1bHQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChieXRlc1JlYWQpIHsKICAgICAgICAgICAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICB3cml0ZTogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zKSB7CiAgICAgICAgICAgICAgICBpZiAoIXN0cmVhbS50dHkgfHwgIXN0cmVhbS50dHkub3BzLnB1dF9jaGFyKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5YSU8pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLnR0eS5vcHMucHV0X2NoYXIoc3RyZWFtLnR0eSwgYnVmZmVyW29mZnNldCArIGldKQogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChsZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gaQogICAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgZGVmYXVsdF90dHlfb3BzOiB7CiAgICAgICAgICAgIGdldF9jaGFyOiAoZnVuY3Rpb24odHR5KSB7CiAgICAgICAgICAgICAgICBpZiAoIXR0eS5pbnB1dC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgQlVGU0laRSA9IDI1NjsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJ1ZiA9IG5ldyBCdWZmZXIoQlVGU0laRSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBieXRlc1JlYWQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNQb3NpeFBsYXRmb3JtID0gcHJvY2Vzcy5wbGF0Zm9ybSAhPSAid2luMzIiOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmQgPSBwcm9jZXNzLnN0ZGluLmZkOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQb3NpeFBsYXRmb3JtKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdXNpbmdEZXZpY2UgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQgPSBmcy5vcGVuU3luYygiL2Rldi9zdGRpbiIsICJyIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmdEZXZpY2UgPSB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc1JlYWQgPSBmcy5yZWFkU3luYyhmZCwgYnVmLCAwLCBCVUZTSVpFLCBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS50b1N0cmluZygpLmluZGV4T2YoIkVPRiIpICE9IC0xKSBieXRlc1JlYWQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB0aHJvdyBlCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzaW5nRGV2aWNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcy5jbG9zZVN5bmMoZmQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ5dGVzUmVhZCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGJ1Zi5zbGljZSgwLCBieXRlc1JlYWQpLnRvU3RyaW5nKCJ1dGYtOCIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT0gInVuZGVmaW5lZCIgJiYgdHlwZW9mIHdpbmRvdy5wcm9tcHQgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB3aW5kb3cucHJvbXB0KCJJbnB1dDogIik7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWFkbGluZSA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlYWRsaW5lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHR5LmlucHV0ID0gaW50QXJyYXlGcm9tU3RyaW5nKHJlc3VsdCwgdHJ1ZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB0dHkuaW5wdXQuc2hpZnQoKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcHV0X2NoYXI6IChmdW5jdGlvbih0dHksIHZhbCkgewogICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IDEwKSB7CiAgICAgICAgICAgICAgICAgICAgTW9kdWxlWyJwcmludCJdKFVURjhBcnJheVRvU3RyaW5nKHR0eS5vdXRwdXQsIDApKTsKICAgICAgICAgICAgICAgICAgICB0dHkub3V0cHV0ID0gW10KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCAhPSAwKSB0dHkub3V0cHV0LnB1c2godmFsKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgZmx1c2g6IChmdW5jdGlvbih0dHkpIHsKICAgICAgICAgICAgICAgIGlmICh0dHkub3V0cHV0ICYmIHR0eS5vdXRwdXQubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgICAgIE1vZHVsZVsicHJpbnQiXShVVEY4QXJyYXlUb1N0cmluZyh0dHkub3V0cHV0LCAwKSk7CiAgICAgICAgICAgICAgICAgICAgdHR5Lm91dHB1dCA9IFtdCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgfSwKICAgICAgICBkZWZhdWx0X3R0eTFfb3BzOiB7CiAgICAgICAgICAgIHB1dF9jaGFyOiAoZnVuY3Rpb24odHR5LCB2YWwpIHsKICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSAxMCkgewogICAgICAgICAgICAgICAgICAgIE1vZHVsZVsicHJpbnRFcnIiXShVVEY4QXJyYXlUb1N0cmluZyh0dHkub3V0cHV0LCAwKSk7CiAgICAgICAgICAgICAgICAgICAgdHR5Lm91dHB1dCA9IFtdCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmICh2YWwgIT0gMCkgdHR5Lm91dHB1dC5wdXNoKHZhbCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGZsdXNoOiAoZnVuY3Rpb24odHR5KSB7CiAgICAgICAgICAgICAgICBpZiAodHR5Lm91dHB1dCAmJiB0dHkub3V0cHV0Lmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICBNb2R1bGVbInByaW50RXJyIl0oVVRGOEFycmF5VG9TdHJpbmcodHR5Lm91dHB1dCwgMCkpOwogICAgICAgICAgICAgICAgICAgIHR0eS5vdXRwdXQgPSBbXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH07CiAgICB2YXIgTUVNRlMgPSB7CiAgICAgICAgb3BzX3RhYmxlOiBudWxsLAogICAgICAgIG1vdW50OiAoZnVuY3Rpb24obW91bnQpIHsKICAgICAgICAgICAgcmV0dXJuIE1FTUZTLmNyZWF0ZU5vZGUobnVsbCwgIi8iLCAxNjM4NCB8IDUxMSwgMCkKICAgICAgICB9KSwKICAgICAgICBjcmVhdGVOb2RlOiAoZnVuY3Rpb24ocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpIHsKICAgICAgICAgICAgaWYgKEZTLmlzQmxrZGV2KG1vZGUpIHx8IEZTLmlzRklGTyhtb2RlKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFNRU1GUy5vcHNfdGFibGUpIHsKICAgICAgICAgICAgICAgIE1FTUZTLm9wc190YWJsZSA9IHsKICAgICAgICAgICAgICAgICAgICBkaXI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgbm9kZTogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNldGF0dHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rdXA6IE1FTUZTLm5vZGVfb3BzLmxvb2t1cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rbm9kOiBNRU1GUy5ub2RlX29wcy5ta25vZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmFtZTogTUVNRlMubm9kZV9vcHMucmVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5saW5rOiBNRU1GUy5ub2RlX29wcy51bmxpbmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBybWRpcjogTUVNRlMubm9kZV9vcHMucm1kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZGlyOiBNRU1GUy5ub2RlX29wcy5yZWFkZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltbGluazogTUVNRlMubm9kZV9vcHMuc3ltbGluawogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW06IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsc2VlazogTUVNRlMuc3RyZWFtX29wcy5sbHNlZWsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZmlsZTogewogICAgICAgICAgICAgICAgICAgICAgICBub2RlOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRhdHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0cgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW06IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsc2VlazogTUVNRlMuc3RyZWFtX29wcy5sbHNlZWssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkOiBNRU1GUy5zdHJlYW1fb3BzLnJlYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZTogTUVNRlMuc3RyZWFtX29wcy53cml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRlOiBNRU1GUy5zdHJlYW1fb3BzLmFsbG9jYXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW1hcDogTUVNRlMuc3RyZWFtX29wcy5tbWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXN5bmM6IE1FTUZTLnN0cmVhbV9vcHMubXN5bmMKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgbGluazogewogICAgICAgICAgICAgICAgICAgICAgICBub2RlOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRhdHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRsaW5rOiBNRU1GUy5ub2RlX29wcy5yZWFkbGluawogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW06IHt9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBjaHJkZXY6IHsKICAgICAgICAgICAgICAgICAgICAgICAgbm9kZTogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cjogTUVNRlMubm9kZV9vcHMuZ2V0YXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldGF0dHI6IE1FTUZTLm5vZGVfb3BzLnNldGF0dHIKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtOiBGUy5jaHJkZXZfc3RyZWFtX29wcwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZU5vZGUocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpOwogICAgICAgICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgbm9kZS5ub2RlX29wcyA9IE1FTUZTLm9wc190YWJsZS5kaXIubm9kZTsKICAgICAgICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IE1FTUZTLm9wc190YWJsZS5kaXIuc3RyZWFtOwogICAgICAgICAgICAgICAgbm9kZS5jb250ZW50cyA9IHt9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoRlMuaXNGaWxlKG5vZGUubW9kZSkpIHsKICAgICAgICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSBNRU1GUy5vcHNfdGFibGUuZmlsZS5ub2RlOwogICAgICAgICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gTUVNRlMub3BzX3RhYmxlLmZpbGUuc3RyZWFtOwogICAgICAgICAgICAgICAgbm9kZS51c2VkQnl0ZXMgPSAwOwogICAgICAgICAgICAgICAgbm9kZS5jb250ZW50cyA9IG51bGwKICAgICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgbm9kZS5ub2RlX29wcyA9IE1FTUZTLm9wc190YWJsZS5saW5rLm5vZGU7CiAgICAgICAgICAgICAgICBub2RlLnN0cmVhbV9vcHMgPSBNRU1GUy5vcHNfdGFibGUubGluay5zdHJlYW0KICAgICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0NocmRldihub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICBub2RlLm5vZGVfb3BzID0gTUVNRlMub3BzX3RhYmxlLmNocmRldi5ub2RlOwogICAgICAgICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gTUVNRlMub3BzX3RhYmxlLmNocmRldi5zdHJlYW0KICAgICAgICAgICAgfQogICAgICAgICAgICBub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7CiAgICAgICAgICAgIGlmIChwYXJlbnQpIHsKICAgICAgICAgICAgICAgIHBhcmVudC5jb250ZW50c1tuYW1lXSA9IG5vZGUKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbm9kZQogICAgICAgIH0pLAogICAgICAgIGdldEZpbGVEYXRhQXNSZWd1bGFyQXJyYXk6IChmdW5jdGlvbihub2RlKSB7CiAgICAgICAgICAgIGlmIChub2RlLmNvbnRlbnRzICYmIG5vZGUuY29udGVudHMuc3ViYXJyYXkpIHsKICAgICAgICAgICAgICAgIHZhciBhcnIgPSBbXTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS51c2VkQnl0ZXM7ICsraSkgYXJyLnB1c2gobm9kZS5jb250ZW50c1tpXSk7CiAgICAgICAgICAgICAgICByZXR1cm4gYXJyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIG5vZGUuY29udGVudHMKICAgICAgICB9KSwKICAgICAgICBnZXRGaWxlRGF0YUFzVHlwZWRBcnJheTogKGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgICAgaWYgKCFub2RlLmNvbnRlbnRzKSByZXR1cm4gbmV3IFVpbnQ4QXJyYXk7CiAgICAgICAgICAgIGlmIChub2RlLmNvbnRlbnRzLnN1YmFycmF5KSByZXR1cm4gbm9kZS5jb250ZW50cy5zdWJhcnJheSgwLCBub2RlLnVzZWRCeXRlcyk7CiAgICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShub2RlLmNvbnRlbnRzKQogICAgICAgIH0pLAogICAgICAgIGV4cGFuZEZpbGVTdG9yYWdlOiAoZnVuY3Rpb24obm9kZSwgbmV3Q2FwYWNpdHkpIHsKICAgICAgICAgICAgaWYgKG5vZGUuY29udGVudHMgJiYgbm9kZS5jb250ZW50cy5zdWJhcnJheSAmJiBuZXdDYXBhY2l0eSA+IG5vZGUuY29udGVudHMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBub2RlLmNvbnRlbnRzID0gTUVNRlMuZ2V0RmlsZURhdGFBc1JlZ3VsYXJBcnJheShub2RlKTsKICAgICAgICAgICAgICAgIG5vZGUudXNlZEJ5dGVzID0gbm9kZS5jb250ZW50cy5sZW5ndGgKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIW5vZGUuY29udGVudHMgfHwgbm9kZS5jb250ZW50cy5zdWJhcnJheSkgewogICAgICAgICAgICAgICAgdmFyIHByZXZDYXBhY2l0eSA9IG5vZGUuY29udGVudHMgPyBub2RlLmNvbnRlbnRzLmxlbmd0aCA6IDA7CiAgICAgICAgICAgICAgICBpZiAocHJldkNhcGFjaXR5ID49IG5ld0NhcGFjaXR5KSByZXR1cm47CiAgICAgICAgICAgICAgICB2YXIgQ0FQQUNJVFlfRE9VQkxJTkdfTUFYID0gMTAyNCAqIDEwMjQ7CiAgICAgICAgICAgICAgICBuZXdDYXBhY2l0eSA9IE1hdGgubWF4KG5ld0NhcGFjaXR5LCBwcmV2Q2FwYWNpdHkgKiAocHJldkNhcGFjaXR5IDwgQ0FQQUNJVFlfRE9VQkxJTkdfTUFYID8gMiA6IDEuMTI1KSB8IDApOwogICAgICAgICAgICAgICAgaWYgKHByZXZDYXBhY2l0eSAhPSAwKSBuZXdDYXBhY2l0eSA9IE1hdGgubWF4KG5ld0NhcGFjaXR5LCAyNTYpOwogICAgICAgICAgICAgICAgdmFyIG9sZENvbnRlbnRzID0gbm9kZS5jb250ZW50czsKICAgICAgICAgICAgICAgIG5vZGUuY29udGVudHMgPSBuZXcgVWludDhBcnJheShuZXdDYXBhY2l0eSk7CiAgICAgICAgICAgICAgICBpZiAobm9kZS51c2VkQnl0ZXMgPiAwKSBub2RlLmNvbnRlbnRzLnNldChvbGRDb250ZW50cy5zdWJhcnJheSgwLCBub2RlLnVzZWRCeXRlcyksIDApOwogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFub2RlLmNvbnRlbnRzICYmIG5ld0NhcGFjaXR5ID4gMCkgbm9kZS5jb250ZW50cyA9IFtdOwogICAgICAgICAgICB3aGlsZSAobm9kZS5jb250ZW50cy5sZW5ndGggPCBuZXdDYXBhY2l0eSkgbm9kZS5jb250ZW50cy5wdXNoKDApCiAgICAgICAgfSksCiAgICAgICAgcmVzaXplRmlsZVN0b3JhZ2U6IChmdW5jdGlvbihub2RlLCBuZXdTaXplKSB7CiAgICAgICAgICAgIGlmIChub2RlLnVzZWRCeXRlcyA9PSBuZXdTaXplKSByZXR1cm47CiAgICAgICAgICAgIGlmIChuZXdTaXplID09IDApIHsKICAgICAgICAgICAgICAgIG5vZGUuY29udGVudHMgPSBudWxsOwogICAgICAgICAgICAgICAgbm9kZS51c2VkQnl0ZXMgPSAwOwogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFub2RlLmNvbnRlbnRzIHx8IG5vZGUuY29udGVudHMuc3ViYXJyYXkpIHsKICAgICAgICAgICAgICAgIHZhciBvbGRDb250ZW50cyA9IG5vZGUuY29udGVudHM7CiAgICAgICAgICAgICAgICBub2RlLmNvbnRlbnRzID0gbmV3IFVpbnQ4QXJyYXkobmV3IEFycmF5QnVmZmVyKG5ld1NpemUpKTsKICAgICAgICAgICAgICAgIGlmIChvbGRDb250ZW50cykgewogICAgICAgICAgICAgICAgICAgIG5vZGUuY29udGVudHMuc2V0KG9sZENvbnRlbnRzLnN1YmFycmF5KDAsIE1hdGgubWluKG5ld1NpemUsIG5vZGUudXNlZEJ5dGVzKSkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBub2RlLnVzZWRCeXRlcyA9IG5ld1NpemU7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIW5vZGUuY29udGVudHMpIG5vZGUuY29udGVudHMgPSBbXTsKICAgICAgICAgICAgaWYgKG5vZGUuY29udGVudHMubGVuZ3RoID4gbmV3U2l6ZSkgbm9kZS5jb250ZW50cy5sZW5ndGggPSBuZXdTaXplOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB3aGlsZSAobm9kZS5jb250ZW50cy5sZW5ndGggPCBuZXdTaXplKSBub2RlLmNvbnRlbnRzLnB1c2goMCk7CiAgICAgICAgICAgIG5vZGUudXNlZEJ5dGVzID0gbmV3U2l6ZQogICAgICAgIH0pLAogICAgICAgIG5vZGVfb3BzOiB7CiAgICAgICAgICAgIGdldGF0dHI6IChmdW5jdGlvbihub2RlKSB7CiAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IHt9OwogICAgICAgICAgICAgICAgYXR0ci5kZXYgPSBGUy5pc0NocmRldihub2RlLm1vZGUpID8gbm9kZS5pZCA6IDE7CiAgICAgICAgICAgICAgICBhdHRyLmlubyA9IG5vZGUuaWQ7CiAgICAgICAgICAgICAgICBhdHRyLm1vZGUgPSBub2RlLm1vZGU7CiAgICAgICAgICAgICAgICBhdHRyLm5saW5rID0gMTsKICAgICAgICAgICAgICAgIGF0dHIudWlkID0gMDsKICAgICAgICAgICAgICAgIGF0dHIuZ2lkID0gMDsKICAgICAgICAgICAgICAgIGF0dHIucmRldiA9IG5vZGUucmRldjsKICAgICAgICAgICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgYXR0ci5zaXplID0gNDA5NgogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgICAgIGF0dHIuc2l6ZSA9IG5vZGUudXNlZEJ5dGVzCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgYXR0ci5zaXplID0gbm9kZS5saW5rLmxlbmd0aAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBhdHRyLnNpemUgPSAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhdHRyLmF0aW1lID0gbmV3IERhdGUobm9kZS50aW1lc3RhbXApOwogICAgICAgICAgICAgICAgYXR0ci5tdGltZSA9IG5ldyBEYXRlKG5vZGUudGltZXN0YW1wKTsKICAgICAgICAgICAgICAgIGF0dHIuY3RpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCk7CiAgICAgICAgICAgICAgICBhdHRyLmJsa3NpemUgPSA0MDk2OwogICAgICAgICAgICAgICAgYXR0ci5ibG9ja3MgPSBNYXRoLmNlaWwoYXR0ci5zaXplIC8gYXR0ci5ibGtzaXplKTsKICAgICAgICAgICAgICAgIHJldHVybiBhdHRyCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBzZXRhdHRyOiAoZnVuY3Rpb24obm9kZSwgYXR0cikgewogICAgICAgICAgICAgICAgaWYgKGF0dHIubW9kZSAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgbm9kZS5tb2RlID0gYXR0ci5tb2RlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoYXR0ci50aW1lc3RhbXAgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIG5vZGUudGltZXN0YW1wID0gYXR0ci50aW1lc3RhbXAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChhdHRyLnNpemUgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIE1FTUZTLnJlc2l6ZUZpbGVTdG9yYWdlKG5vZGUsIGF0dHIuc2l6ZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGxvb2t1cDogKGZ1bmN0aW9uKHBhcmVudCwgbmFtZSkgewogICAgICAgICAgICAgICAgdGhyb3cgRlMuZ2VuZXJpY0Vycm9yc1tFUlJOT19DT0RFUy5FTk9FTlRdCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBta25vZDogKGZ1bmN0aW9uKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gTUVNRlMuY3JlYXRlTm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRldikKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHJlbmFtZTogKGZ1bmN0aW9uKG9sZF9ub2RlLCBuZXdfZGlyLCBuZXdfbmFtZSkgewogICAgICAgICAgICAgICAgaWYgKEZTLmlzRGlyKG9sZF9ub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG5ld19ub2RlOwogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld19ub2RlID0gRlMubG9va3VwTm9kZShuZXdfZGlyLCBuZXdfbmFtZSkKICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICAgICAgICAgIGlmIChuZXdfbm9kZSkgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIG5ld19ub2RlLmNvbnRlbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URU1QVFkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZWxldGUgb2xkX25vZGUucGFyZW50LmNvbnRlbnRzW29sZF9ub2RlLm5hbWVdOwogICAgICAgICAgICAgICAgb2xkX25vZGUubmFtZSA9IG5ld19uYW1lOwogICAgICAgICAgICAgICAgbmV3X2Rpci5jb250ZW50c1tuZXdfbmFtZV0gPSBvbGRfbm9kZTsKICAgICAgICAgICAgICAgIG9sZF9ub2RlLnBhcmVudCA9IG5ld19kaXIKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHVubGluazogKGZ1bmN0aW9uKHBhcmVudCwgbmFtZSkgewogICAgICAgICAgICAgICAgZGVsZXRlIHBhcmVudC5jb250ZW50c1tuYW1lXQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcm1kaXI6IChmdW5jdGlvbihwYXJlbnQsIG5hbWUpIHsKICAgICAgICAgICAgICAgIHZhciBub2RlID0gRlMubG9va3VwTm9kZShwYXJlbnQsIG5hbWUpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSBpbiBub2RlLmNvbnRlbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVEVNUFRZKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZGVsZXRlIHBhcmVudC5jb250ZW50c1tuYW1lXQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcmVhZGRpcjogKGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgICAgICAgIHZhciBlbnRyaWVzID0gWyIuIiwgIi4uIl07CiAgICAgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gbm9kZS5jb250ZW50cykgewogICAgICAgICAgICAgICAgICAgIGlmICghbm9kZS5jb250ZW50cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudHJpZXMucHVzaChrZXkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gZW50cmllcwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgc3ltbGluazogKGZ1bmN0aW9uKHBhcmVudCwgbmV3bmFtZSwgb2xkcGF0aCkgewogICAgICAgICAgICAgICAgdmFyIG5vZGUgPSBNRU1GUy5jcmVhdGVOb2RlKHBhcmVudCwgbmV3bmFtZSwgNTExIHwgNDA5NjAsIDApOwogICAgICAgICAgICAgICAgbm9kZS5saW5rID0gb2xkcGF0aDsKICAgICAgICAgICAgICAgIHJldHVybiBub2RlCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICByZWFkbGluazogKGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgICAgICAgIGlmICghRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5saW5rCiAgICAgICAgICAgIH0pCiAgICAgICAgfSwKICAgICAgICBzdHJlYW1fb3BzOiB7CiAgICAgICAgICAgIHJlYWQ6IChmdW5jdGlvbihzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7CiAgICAgICAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA+PSBzdHJlYW0ubm9kZS51c2VkQnl0ZXMpIHJldHVybiAwOwogICAgICAgICAgICAgICAgdmFyIHNpemUgPSBNYXRoLm1pbihzdHJlYW0ubm9kZS51c2VkQnl0ZXMgLSBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgICAgICAgICAgIGFzc2VydChzaXplID49IDApOwogICAgICAgICAgICAgICAgaWYgKHNpemUgPiA4ICYmIGNvbnRlbnRzLnN1YmFycmF5KSB7CiAgICAgICAgICAgICAgICAgICAgYnVmZmVyLnNldChjb250ZW50cy5zdWJhcnJheShwb3NpdGlvbiwgcG9zaXRpb24gKyBzaXplKSwgb2Zmc2V0KQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgYnVmZmVyW29mZnNldCArIGldID0gY29udGVudHNbcG9zaXRpb24gKyBpXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHNpemUKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHdyaXRlOiAoZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgY2FuT3duKSB7CiAgICAgICAgICAgICAgICBpZiAoIWxlbmd0aCkgcmV0dXJuIDA7CiAgICAgICAgICAgICAgICB2YXIgbm9kZSA9IHN0cmVhbS5ub2RlOwogICAgICAgICAgICAgICAgbm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwogICAgICAgICAgICAgICAgaWYgKGJ1ZmZlci5zdWJhcnJheSAmJiAoIW5vZGUuY29udGVudHMgfHwgbm9kZS5jb250ZW50cy5zdWJhcnJheSkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY2FuT3duKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuY29udGVudHMgPSBidWZmZXIuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBsZW5ndGgpOwogICAgICAgICAgICAgICAgICAgICAgICBub2RlLnVzZWRCeXRlcyA9IGxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aAogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS51c2VkQnl0ZXMgPT09IDAgJiYgcG9zaXRpb24gPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5jb250ZW50cyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlci5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIGxlbmd0aCkpOwogICAgICAgICAgICAgICAgICAgICAgICBub2RlLnVzZWRCeXRlcyA9IGxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aAogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocG9zaXRpb24gKyBsZW5ndGggPD0gbm9kZS51c2VkQnl0ZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5jb250ZW50cy5zZXQoYnVmZmVyLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgbGVuZ3RoKSwgcG9zaXRpb24pOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgTUVNRlMuZXhwYW5kRmlsZVN0b3JhZ2Uobm9kZSwgcG9zaXRpb24gKyBsZW5ndGgpOwogICAgICAgICAgICAgICAgaWYgKG5vZGUuY29udGVudHMuc3ViYXJyYXkgJiYgYnVmZmVyLnN1YmFycmF5KSBub2RlLmNvbnRlbnRzLnNldChidWZmZXIuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBsZW5ndGgpLCBwb3NpdGlvbik7CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuY29udGVudHNbcG9zaXRpb24gKyBpXSA9IGJ1ZmZlcltvZmZzZXQgKyBpXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG5vZGUudXNlZEJ5dGVzID0gTWF0aC5tYXgobm9kZS51c2VkQnl0ZXMsIHBvc2l0aW9uICsgbGVuZ3RoKTsKICAgICAgICAgICAgICAgIHJldHVybiBsZW5ndGgKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGxsc2VlazogKGZ1bmN0aW9uKHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2UpIHsKICAgICAgICAgICAgICAgIHZhciBwb3NpdGlvbiA9IG9mZnNldDsKICAgICAgICAgICAgICAgIGlmICh3aGVuY2UgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0ucG9zaXRpb24KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2hlbmNlID09PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0ubm9kZS51c2VkQnl0ZXMKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBhbGxvY2F0ZTogKGZ1bmN0aW9uKHN0cmVhbSwgb2Zmc2V0LCBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIE1FTUZTLmV4cGFuZEZpbGVTdG9yYWdlKHN0cmVhbS5ub2RlLCBvZmZzZXQgKyBsZW5ndGgpOwogICAgICAgICAgICAgICAgc3RyZWFtLm5vZGUudXNlZEJ5dGVzID0gTWF0aC5tYXgoc3RyZWFtLm5vZGUudXNlZEJ5dGVzLCBvZmZzZXQgKyBsZW5ndGgpCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBtbWFwOiAoZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpIHsKICAgICAgICAgICAgICAgIGlmICghRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVWKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHB0cjsKICAgICAgICAgICAgICAgIHZhciBhbGxvY2F0ZWQ7CiAgICAgICAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKICAgICAgICAgICAgICAgIGlmICghKGZsYWdzICYgMikgJiYgKGNvbnRlbnRzLmJ1ZmZlciA9PT0gYnVmZmVyIHx8IGNvbnRlbnRzLmJ1ZmZlciA9PT0gYnVmZmVyLmJ1ZmZlcikpIHsKICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBwdHIgPSBjb250ZW50cy5ieXRlT2Zmc2V0CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA+IDAgfHwgcG9zaXRpb24gKyBsZW5ndGggPCBzdHJlYW0ubm9kZS51c2VkQnl0ZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRzLnN1YmFycmF5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50cyA9IGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0aW9uLCBwb3NpdGlvbiArIGxlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoY29udGVudHMsIHBvc2l0aW9uLCBwb3NpdGlvbiArIGxlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHB0ciA9IF9tYWxsb2MobGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXB0cikgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9NRU0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXQoY29udGVudHMsIHB0cikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgcHRyOiBwdHIsCiAgICAgICAgICAgICAgICAgICAgYWxsb2NhdGVkOiBhbGxvY2F0ZWQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIG1zeW5jOiAoZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBtbWFwRmxhZ3MpIHsKICAgICAgICAgICAgICAgIGlmICghRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PREVWKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1tYXBGbGFncyAmIDIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGJ5dGVzV3JpdHRlbiA9IE1FTUZTLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFtLCBidWZmZXIsIDAsIGxlbmd0aCwgb2Zmc2V0LCBmYWxzZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH07CiAgICB2YXIgSURCRlMgPSB7CiAgICAgICAgZGJzOiB7fSwKICAgICAgICBpbmRleGVkREI6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBpbmRleGVkREIgIT09ICJ1bmRlZmluZWQiKSByZXR1cm4gaW5kZXhlZERCOwogICAgICAgICAgICB2YXIgcmV0ID0gbnVsbDsKICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICJvYmplY3QiKSByZXQgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubXNJbmRleGVkREI7CiAgICAgICAgICAgIGFzc2VydChyZXQsICJJREJGUyB1c2VkLCBidXQgaW5kZXhlZERCIG5vdCBzdXBwb3J0ZWQiKTsKICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgIH0pLAogICAgICAgIERCX1ZFUlNJT046IDIxLAogICAgICAgIERCX1NUT1JFX05BTUU6ICJGSUxFX0RBVEEiLAogICAgICAgIG1vdW50OiAoZnVuY3Rpb24obW91bnQpIHsKICAgICAgICAgICAgcmV0dXJuIE1FTUZTLm1vdW50LmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgICAgICB9KSwKICAgICAgICBzeW5jZnM6IChmdW5jdGlvbihtb3VudCwgcG9wdWxhdGUsIGNhbGxiYWNrKSB7CiAgICAgICAgICAgIElEQkZTLmdldExvY2FsU2V0KG1vdW50LCAoZnVuY3Rpb24oZXJyLCBsb2NhbCkgewogICAgICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIGNhbGxiYWNrKGVycik7CiAgICAgICAgICAgICAgICBJREJGUy5nZXRSZW1vdGVTZXQobW91bnQsIChmdW5jdGlvbihlcnIsIHJlbW90ZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBjYWxsYmFjayhlcnIpOwogICAgICAgICAgICAgICAgICAgIHZhciBzcmMgPSBwb3B1bGF0ZSA/IHJlbW90ZSA6IGxvY2FsOwogICAgICAgICAgICAgICAgICAgIHZhciBkc3QgPSBwb3B1bGF0ZSA/IGxvY2FsIDogcmVtb3RlOwogICAgICAgICAgICAgICAgICAgIElEQkZTLnJlY29uY2lsZShzcmMsIGRzdCwgY2FsbGJhY2spCiAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgfSkpCiAgICAgICAgfSksCiAgICAgICAgZ2V0REI6IChmdW5jdGlvbihuYW1lLCBjYWxsYmFjaykgewogICAgICAgICAgICB2YXIgZGIgPSBJREJGUy5kYnNbbmFtZV07CiAgICAgICAgICAgIGlmIChkYikgewogICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIGRiKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciByZXE7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICByZXEgPSBJREJGUy5pbmRleGVkREIoKS5vcGVuKG5hbWUsIElEQkZTLkRCX1ZFUlNJT04pCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcmVxKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soIlVuYWJsZSB0byBjb25uZWN0IHRvIEluZGV4ZWREQiIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVxLm9udXBncmFkZW5lZWRlZCA9IChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CiAgICAgICAgICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBlLnRhcmdldC50cmFuc2FjdGlvbjsKICAgICAgICAgICAgICAgIHZhciBmaWxlU3RvcmU7CiAgICAgICAgICAgICAgICBpZiAoZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhJREJGUy5EQl9TVE9SRV9OQU1FKSkgewogICAgICAgICAgICAgICAgICAgIGZpbGVTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKElEQkZTLkRCX1NUT1JFX05BTUUpCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGZpbGVTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKElEQkZTLkRCX1NUT1JFX05BTUUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIWZpbGVTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJ0aW1lc3RhbXAiKSkgewogICAgICAgICAgICAgICAgICAgIGZpbGVTdG9yZS5jcmVhdGVJbmRleCgidGltZXN0YW1wIiwgInRpbWVzdGFtcCIsIHsKICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVlOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXEub25zdWNjZXNzID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgZGIgPSByZXEucmVzdWx0OwogICAgICAgICAgICAgICAgSURCRlMuZGJzW25hbWVdID0gZGI7CiAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCBkYikKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHJlcS5vbmVycm9yID0gKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuZXJyb3IpOwogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSksCiAgICAgICAgZ2V0TG9jYWxTZXQ6IChmdW5jdGlvbihtb3VudCwgY2FsbGJhY2spIHsKICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB7fTsKCiAgICAgICAgICAgIGZ1bmN0aW9uIGlzUmVhbERpcihwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gcCAhPT0gIi4iICYmIHAgIT09ICIuLiIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gdG9BYnNvbHV0ZShyb290KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gUEFUSC5qb2luMihyb290LCBwKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgY2hlY2sgPSBGUy5yZWFkZGlyKG1vdW50Lm1vdW50cG9pbnQpLmZpbHRlcihpc1JlYWxEaXIpLm1hcCh0b0Fic29sdXRlKG1vdW50Lm1vdW50cG9pbnQpKTsKICAgICAgICAgICAgd2hpbGUgKGNoZWNrLmxlbmd0aCkgewogICAgICAgICAgICAgICAgdmFyIHBhdGggPSBjaGVjay5wb3AoKTsKICAgICAgICAgICAgICAgIHZhciBzdGF0OwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ID0gRlMuc3RhdChwYXRoKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKEZTLmlzRGlyKHN0YXQubW9kZSkpIHsKICAgICAgICAgICAgICAgICAgICBjaGVjay5wdXNoLmFwcGx5KGNoZWNrLCBGUy5yZWFkZGlyKHBhdGgpLmZpbHRlcihpc1JlYWxEaXIpLm1hcCh0b0Fic29sdXRlKHBhdGgpKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVudHJpZXNbcGF0aF0gPSB7CiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBzdGF0Lm10aW1lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHsKICAgICAgICAgICAgICAgIHR5cGU6ICJsb2NhbCIsCiAgICAgICAgICAgICAgICBlbnRyaWVzOiBlbnRyaWVzCiAgICAgICAgICAgIH0pCiAgICAgICAgfSksCiAgICAgICAgZ2V0UmVtb3RlU2V0OiAoZnVuY3Rpb24obW91bnQsIGNhbGxiYWNrKSB7CiAgICAgICAgICAgIHZhciBlbnRyaWVzID0ge307CiAgICAgICAgICAgIElEQkZTLmdldERCKG1vdW50Lm1vdW50cG9pbnQsIChmdW5jdGlvbihlcnIsIGRiKSB7CiAgICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gY2FsbGJhY2soZXJyKTsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oW0lEQkZTLkRCX1NUT1JFX05BTUVdLCAicmVhZG9ubHkiKTsKICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5lcnJvcik7CiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHZhciBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKElEQkZTLkRCX1NUT1JFX05BTUUpOwogICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHN0b3JlLmluZGV4KCJ0aW1lc3RhbXAiKTsKICAgICAgICAgICAgICAgICAgICBpbmRleC5vcGVuS2V5Q3Vyc29yKCkub25zdWNjZXNzID0gKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWN1cnNvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAicmVtb3RlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYjogZGIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cmllczogZW50cmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbnRyaWVzW2N1cnNvci5wcmltYXJ5S2V5XSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogY3Vyc29yLmtleQogICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pKQogICAgICAgIH0pLAogICAgICAgIGxvYWRMb2NhbEVudHJ5OiAoZnVuY3Rpb24ocGF0aCwgY2FsbGJhY2spIHsKICAgICAgICAgICAgdmFyIHN0YXQsIG5vZGU7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoKTsKICAgICAgICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKICAgICAgICAgICAgICAgIHN0YXQgPSBGUy5zdGF0KHBhdGgpCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChGUy5pc0RpcihzdGF0Lm1vZGUpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgewogICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogc3RhdC5tdGltZSwKICAgICAgICAgICAgICAgICAgICBtb2RlOiBzdGF0Lm1vZGUKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0gZWxzZSBpZiAoRlMuaXNGaWxlKHN0YXQubW9kZSkpIHsKICAgICAgICAgICAgICAgIG5vZGUuY29udGVudHMgPSBNRU1GUy5nZXRGaWxlRGF0YUFzVHlwZWRBcnJheShub2RlKTsKICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB7CiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBzdGF0Lm10aW1lLAogICAgICAgICAgICAgICAgICAgIG1vZGU6IHN0YXQubW9kZSwKICAgICAgICAgICAgICAgICAgICBjb250ZW50czogbm9kZS5jb250ZW50cwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhuZXcgRXJyb3IoIm5vZGUgdHlwZSBub3Qgc3VwcG9ydGVkIikpCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBzdG9yZUxvY2FsRW50cnk6IChmdW5jdGlvbihwYXRoLCBlbnRyeSwgY2FsbGJhY2spIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmIChGUy5pc0RpcihlbnRyeS5tb2RlKSkgewogICAgICAgICAgICAgICAgICAgIEZTLm1rZGlyKHBhdGgsIGVudHJ5Lm1vZGUpCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKEZTLmlzRmlsZShlbnRyeS5tb2RlKSkgewogICAgICAgICAgICAgICAgICAgIEZTLndyaXRlRmlsZShwYXRoLCBlbnRyeS5jb250ZW50cywgewogICAgICAgICAgICAgICAgICAgICAgICBjYW5Pd246IHRydWUKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobmV3IEVycm9yKCJub2RlIHR5cGUgbm90IHN1cHBvcnRlZCIpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRlMuY2htb2QocGF0aCwgZW50cnkubW9kZSk7CiAgICAgICAgICAgICAgICBGUy51dGltZShwYXRoLCBlbnRyeS50aW1lc3RhbXAsIGVudHJ5LnRpbWVzdGFtcCkKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGUpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FsbGJhY2sobnVsbCkKICAgICAgICB9KSwKICAgICAgICByZW1vdmVMb2NhbEVudHJ5OiAoZnVuY3Rpb24ocGF0aCwgY2FsbGJhY2spIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgpOwogICAgICAgICAgICAgICAgdmFyIHN0YXQgPSBGUy5zdGF0KHBhdGgpOwogICAgICAgICAgICAgICAgaWYgKEZTLmlzRGlyKHN0YXQubW9kZSkpIHsKICAgICAgICAgICAgICAgICAgICBGUy5ybWRpcihwYXRoKQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUoc3RhdC5tb2RlKSkgewogICAgICAgICAgICAgICAgICAgIEZTLnVubGluayhwYXRoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZSkKICAgICAgICAgICAgfQogICAgICAgICAgICBjYWxsYmFjayhudWxsKQogICAgICAgIH0pLAogICAgICAgIGxvYWRSZW1vdGVFbnRyeTogKGZ1bmN0aW9uKHN0b3JlLCBwYXRoLCBjYWxsYmFjaykgewogICAgICAgICAgICB2YXIgcmVxID0gc3RvcmUuZ2V0KHBhdGgpOwogICAgICAgICAgICByZXEub25zdWNjZXNzID0gKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCBldmVudC50YXJnZXQucmVzdWx0KQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgcmVxLm9uZXJyb3IgPSAoZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5lcnJvcik7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgfSkKICAgICAgICB9KSwKICAgICAgICBzdG9yZVJlbW90ZUVudHJ5OiAoZnVuY3Rpb24oc3RvcmUsIHBhdGgsIGVudHJ5LCBjYWxsYmFjaykgewogICAgICAgICAgICB2YXIgcmVxID0gc3RvcmUucHV0KGVudHJ5LCBwYXRoKTsKICAgICAgICAgICAgcmVxLm9uc3VjY2VzcyA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXEub25lcnJvciA9IChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBjYWxsYmFjayh0aGlzLmVycm9yKTsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICB9KQogICAgICAgIH0pLAogICAgICAgIHJlbW92ZVJlbW90ZUVudHJ5OiAoZnVuY3Rpb24oc3RvcmUsIHBhdGgsIGNhbGxiYWNrKSB7CiAgICAgICAgICAgIHZhciByZXEgPSBzdG9yZS5kZWxldGUocGF0aCk7CiAgICAgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgcmVxLm9uZXJyb3IgPSAoZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5lcnJvcik7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgfSkKICAgICAgICB9KSwKICAgICAgICByZWNvbmNpbGU6IChmdW5jdGlvbihzcmMsIGRzdCwgY2FsbGJhY2spIHsKICAgICAgICAgICAgdmFyIHRvdGFsID0gMDsKICAgICAgICAgICAgdmFyIGNyZWF0ZSA9IFtdOwogICAgICAgICAgICBPYmplY3Qua2V5cyhzcmMuZW50cmllcykuZm9yRWFjaCgoZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IHNyYy5lbnRyaWVzW2tleV07CiAgICAgICAgICAgICAgICB2YXIgZTIgPSBkc3QuZW50cmllc1trZXldOwogICAgICAgICAgICAgICAgaWYgKCFlMiB8fCBlLnRpbWVzdGFtcCA+IGUyLnRpbWVzdGFtcCkgewogICAgICAgICAgICAgICAgICAgIGNyZWF0ZS5wdXNoKGtleSk7CiAgICAgICAgICAgICAgICAgICAgdG90YWwrKwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIHZhciByZW1vdmUgPSBbXTsKICAgICAgICAgICAgT2JqZWN0LmtleXMoZHN0LmVudHJpZXMpLmZvckVhY2goKGZ1bmN0aW9uKGtleSkgewogICAgICAgICAgICAgICAgdmFyIGUgPSBkc3QuZW50cmllc1trZXldOwogICAgICAgICAgICAgICAgdmFyIGUyID0gc3JjLmVudHJpZXNba2V5XTsKICAgICAgICAgICAgICAgIGlmICghZTIpIHsKICAgICAgICAgICAgICAgICAgICByZW1vdmUucHVzaChrZXkpOwogICAgICAgICAgICAgICAgICAgIHRvdGFsKysKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkpOwogICAgICAgICAgICBpZiAoIXRvdGFsKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCkKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgY29tcGxldGVkID0gMDsKICAgICAgICAgICAgdmFyIGRiID0gc3JjLnR5cGUgPT09ICJyZW1vdGUiID8gc3JjLmRiIDogZHN0LmRiOwogICAgICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbSURCRlMuREJfU1RPUkVfTkFNRV0sICJyZWFkd3JpdGUiKTsKICAgICAgICAgICAgdmFyIHN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoSURCRlMuREJfU1RPUkVfTkFNRSk7CgogICAgICAgICAgICBmdW5jdGlvbiBkb25lKGVycikgewogICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgIGlmICghZG9uZS5lcnJvcmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUuZXJyb3JlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCsrY29tcGxldGVkID49IHRvdGFsKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBkb25lKHRoaXMuZXJyb3IpOwogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjcmVhdGUuc29ydCgpLmZvckVhY2goKGZ1bmN0aW9uKHBhdGgpIHsKICAgICAgICAgICAgICAgIGlmIChkc3QudHlwZSA9PT0gImxvY2FsIikgewogICAgICAgICAgICAgICAgICAgIElEQkZTLmxvYWRSZW1vdGVFbnRyeShzdG9yZSwgcGF0aCwgKGZ1bmN0aW9uKGVyciwgZW50cnkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIGRvbmUoZXJyKTsKICAgICAgICAgICAgICAgICAgICAgICAgSURCRlMuc3RvcmVMb2NhbEVudHJ5KHBhdGgsIGVudHJ5LCBkb25lKQogICAgICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBJREJGUy5sb2FkTG9jYWxFbnRyeShwYXRoLCAoZnVuY3Rpb24oZXJyLCBlbnRyeSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gZG9uZShlcnIpOwogICAgICAgICAgICAgICAgICAgICAgICBJREJGUy5zdG9yZVJlbW90ZUVudHJ5KHN0b3JlLCBwYXRoLCBlbnRyeSwgZG9uZSkKICAgICAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkpOwogICAgICAgICAgICByZW1vdmUuc29ydCgpLnJldmVyc2UoKS5mb3JFYWNoKChmdW5jdGlvbihwYXRoKSB7CiAgICAgICAgICAgICAgICBpZiAoZHN0LnR5cGUgPT09ICJsb2NhbCIpIHsKICAgICAgICAgICAgICAgICAgICBJREJGUy5yZW1vdmVMb2NhbEVudHJ5KHBhdGgsIGRvbmUpCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIElEQkZTLnJlbW92ZVJlbW90ZUVudHJ5KHN0b3JlLCBwYXRoLCBkb25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSkKICAgICAgICB9KQogICAgfTsKICAgIHZhciBOT0RFRlMgPSB7CiAgICAgICAgaXNXaW5kb3dzOiBmYWxzZSwKICAgICAgICBzdGF0aWNJbml0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIE5PREVGUy5pc1dpbmRvd3MgPSAhIXByb2Nlc3MucGxhdGZvcm0ubWF0Y2goL153aW4vKTsKICAgICAgICAgICAgdmFyIGZsYWdzID0gcHJvY2Vzc1siYmluZGluZyJdKCJjb25zdGFudHMiKTsKICAgICAgICAgICAgaWYgKGZsYWdzWyJmcyJdKSB7CiAgICAgICAgICAgICAgICBmbGFncyA9IGZsYWdzWyJmcyJdCiAgICAgICAgICAgIH0KICAgICAgICAgICAgTk9ERUZTLmZsYWdzRm9yTm9kZU1hcCA9IHsKICAgICAgICAgICAgICAgICIxMDI0IjogZmxhZ3NbIk9fQVBQRU5EIl0sCiAgICAgICAgICAgICAgICAiNjQiOiBmbGFnc1siT19DUkVBVCJdLAogICAgICAgICAgICAgICAgIjEyOCI6IGZsYWdzWyJPX0VYQ0wiXSwKICAgICAgICAgICAgICAgICIwIjogZmxhZ3NbIk9fUkRPTkxZIl0sCiAgICAgICAgICAgICAgICAiMiI6IGZsYWdzWyJPX1JEV1IiXSwKICAgICAgICAgICAgICAgICI0MDk2IjogZmxhZ3NbIk9fU1lOQyJdLAogICAgICAgICAgICAgICAgIjUxMiI6IGZsYWdzWyJPX1RSVU5DIl0sCiAgICAgICAgICAgICAgICAiMSI6IGZsYWdzWyJPX1dST05MWSJdCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBidWZmZXJGcm9tOiAoZnVuY3Rpb24oYXJyYXlCdWZmZXIpIHsKICAgICAgICAgICAgcmV0dXJuIEJ1ZmZlci5hbGxvYyA/IEJ1ZmZlci5mcm9tKGFycmF5QnVmZmVyKSA6IG5ldyBCdWZmZXIoYXJyYXlCdWZmZXIpCiAgICAgICAgfSksCiAgICAgICAgbW91bnQ6IChmdW5jdGlvbihtb3VudCkgewogICAgICAgICAgICBhc3NlcnQoRU5WSVJPTk1FTlRfSVNfTk9ERSk7CiAgICAgICAgICAgIHJldHVybiBOT0RFRlMuY3JlYXRlTm9kZShudWxsLCAiLyIsIE5PREVGUy5nZXRNb2RlKG1vdW50Lm9wdHMucm9vdCksIDApCiAgICAgICAgfSksCiAgICAgICAgY3JlYXRlTm9kZTogKGZ1bmN0aW9uKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KSB7CiAgICAgICAgICAgIGlmICghRlMuaXNEaXIobW9kZSkgJiYgIUZTLmlzRmlsZShtb2RlKSAmJiAhRlMuaXNMaW5rKG1vZGUpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVOb2RlKHBhcmVudCwgbmFtZSwgbW9kZSk7CiAgICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSBOT0RFRlMubm9kZV9vcHM7CiAgICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IE5PREVGUy5zdHJlYW1fb3BzOwogICAgICAgICAgICByZXR1cm4gbm9kZQogICAgICAgIH0pLAogICAgICAgIGdldE1vZGU6IChmdW5jdGlvbihwYXRoKSB7CiAgICAgICAgICAgIHZhciBzdGF0OwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgc3RhdCA9IGZzLmxzdGF0U3luYyhwYXRoKTsKICAgICAgICAgICAgICAgIGlmIChOT0RFRlMuaXNXaW5kb3dzKSB7CiAgICAgICAgICAgICAgICAgICAgc3RhdC5tb2RlID0gc3RhdC5tb2RlIHwgKHN0YXQubW9kZSAmIDI5MikgPj4gMgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICBpZiAoIWUuY29kZSkgdGhyb3cgZTsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHN0YXQubW9kZQogICAgICAgIH0pLAogICAgICAgIHJlYWxQYXRoOiAoZnVuY3Rpb24obm9kZSkgewogICAgICAgICAgICB2YXIgcGFydHMgPSBbXTsKICAgICAgICAgICAgd2hpbGUgKG5vZGUucGFyZW50ICE9PSBub2RlKSB7CiAgICAgICAgICAgICAgICBwYXJ0cy5wdXNoKG5vZGUubmFtZSk7CiAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQKICAgICAgICAgICAgfQogICAgICAgICAgICBwYXJ0cy5wdXNoKG5vZGUubW91bnQub3B0cy5yb290KTsKICAgICAgICAgICAgcGFydHMucmV2ZXJzZSgpOwogICAgICAgICAgICByZXR1cm4gUEFUSC5qb2luLmFwcGx5KG51bGwsIHBhcnRzKQogICAgICAgIH0pLAogICAgICAgIGZsYWdzRm9yTm9kZTogKGZ1bmN0aW9uKGZsYWdzKSB7CiAgICAgICAgICAgIGZsYWdzICY9IH4yMDk3MTUyOwogICAgICAgICAgICBmbGFncyAmPSB+MjA0ODsKICAgICAgICAgICAgZmxhZ3MgJj0gfjMyNzY4OwogICAgICAgICAgICBmbGFncyAmPSB+NTI0Mjg4OwogICAgICAgICAgICB2YXIgbmV3RmxhZ3MgPSAwOwogICAgICAgICAgICBmb3IgKHZhciBrIGluIE5PREVGUy5mbGFnc0Zvck5vZGVNYXApIHsKICAgICAgICAgICAgICAgIGlmIChmbGFncyAmIGspIHsKICAgICAgICAgICAgICAgICAgICBuZXdGbGFncyB8PSBOT0RFRlMuZmxhZ3NGb3JOb2RlTWFwW2tdOwogICAgICAgICAgICAgICAgICAgIGZsYWdzIF49IGsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWZsYWdzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3RmxhZ3MKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIG5vZGVfb3BzOiB7CiAgICAgICAgICAgIGdldGF0dHI6IChmdW5jdGlvbihub2RlKSB7CiAgICAgICAgICAgICAgICB2YXIgcGF0aCA9IE5PREVGUy5yZWFsUGF0aChub2RlKTsKICAgICAgICAgICAgICAgIHZhciBzdGF0OwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ID0gZnMubHN0YXRTeW5jKHBhdGgpCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChOT0RFRlMuaXNXaW5kb3dzICYmICFzdGF0LmJsa3NpemUpIHsKICAgICAgICAgICAgICAgICAgICBzdGF0LmJsa3NpemUgPSA0MDk2CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoTk9ERUZTLmlzV2luZG93cyAmJiAhc3RhdC5ibG9ja3MpIHsKICAgICAgICAgICAgICAgICAgICBzdGF0LmJsb2NrcyA9IChzdGF0LnNpemUgKyBzdGF0LmJsa3NpemUgLSAxKSAvIHN0YXQuYmxrc2l6ZSB8IDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgZGV2OiBzdGF0LmRldiwKICAgICAgICAgICAgICAgICAgICBpbm86IHN0YXQuaW5vLAogICAgICAgICAgICAgICAgICAgIG1vZGU6IHN0YXQubW9kZSwKICAgICAgICAgICAgICAgICAgICBubGluazogc3RhdC5ubGluaywKICAgICAgICAgICAgICAgICAgICB1aWQ6IHN0YXQudWlkLAogICAgICAgICAgICAgICAgICAgIGdpZDogc3RhdC5naWQsCiAgICAgICAgICAgICAgICAgICAgcmRldjogc3RhdC5yZGV2LAogICAgICAgICAgICAgICAgICAgIHNpemU6IHN0YXQuc2l6ZSwKICAgICAgICAgICAgICAgICAgICBhdGltZTogc3RhdC5hdGltZSwKICAgICAgICAgICAgICAgICAgICBtdGltZTogc3RhdC5tdGltZSwKICAgICAgICAgICAgICAgICAgICBjdGltZTogc3RhdC5jdGltZSwKICAgICAgICAgICAgICAgICAgICBibGtzaXplOiBzdGF0LmJsa3NpemUsCiAgICAgICAgICAgICAgICAgICAgYmxvY2tzOiBzdGF0LmJsb2NrcwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgc2V0YXR0cjogKGZ1bmN0aW9uKG5vZGUsIGF0dHIpIHsKICAgICAgICAgICAgICAgIHZhciBwYXRoID0gTk9ERUZTLnJlYWxQYXRoKG5vZGUpOwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5tb2RlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnMuY2htb2RTeW5jKHBhdGgsIGF0dHIubW9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUubW9kZSA9IGF0dHIubW9kZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci50aW1lc3RhbXAgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKGF0dHIudGltZXN0YW1wKTsKICAgICAgICAgICAgICAgICAgICAgICAgZnMudXRpbWVzU3luYyhwYXRoLCBkYXRlLCBkYXRlKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5zaXplICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnMudHJ1bmNhdGVTeW5jKHBhdGgsIGF0dHIuc2l6ZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGxvb2t1cDogKGZ1bmN0aW9uKHBhcmVudCwgbmFtZSkgewogICAgICAgICAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4yKE5PREVGUy5yZWFsUGF0aChwYXJlbnQpLCBuYW1lKTsKICAgICAgICAgICAgICAgIHZhciBtb2RlID0gTk9ERUZTLmdldE1vZGUocGF0aCk7CiAgICAgICAgICAgICAgICByZXR1cm4gTk9ERUZTLmNyZWF0ZU5vZGUocGFyZW50LCBuYW1lLCBtb2RlKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgbWtub2Q6IChmdW5jdGlvbihwYXJlbnQsIG5hbWUsIG1vZGUsIGRldikgewogICAgICAgICAgICAgICAgdmFyIG5vZGUgPSBOT0RFRlMuY3JlYXRlTm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRldik7CiAgICAgICAgICAgICAgICB2YXIgcGF0aCA9IE5PREVGUy5yZWFsUGF0aChub2RlKTsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnMubWtkaXJTeW5jKHBhdGgsIG5vZGUubW9kZSkKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGgsICIiLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBub2RlLm1vZGUKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBub2RlCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICByZW5hbWU6IChmdW5jdGlvbihvbGROb2RlLCBuZXdEaXIsIG5ld05hbWUpIHsKICAgICAgICAgICAgICAgIHZhciBvbGRQYXRoID0gTk9ERUZTLnJlYWxQYXRoKG9sZE5vZGUpOwogICAgICAgICAgICAgICAgdmFyIG5ld1BhdGggPSBQQVRILmpvaW4yKE5PREVGUy5yZWFsUGF0aChuZXdEaXIpLCBuZXdOYW1lKTsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgZnMucmVuYW1lU3luYyhvbGRQYXRoLCBuZXdQYXRoKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGlmICghZS5jb2RlKSB0aHJvdyBlOwogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICB1bmxpbms6IChmdW5jdGlvbihwYXJlbnQsIG5hbWUpIHsKICAgICAgICAgICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luMihOT0RFRlMucmVhbFBhdGgocGFyZW50KSwgbmFtZSk7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGZzLnVubGlua1N5bmMocGF0aCkKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIWUuY29kZSkgdGhyb3cgZTsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFU1tlLmNvZGVdKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcm1kaXI6IChmdW5jdGlvbihwYXJlbnQsIG5hbWUpIHsKICAgICAgICAgICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luMihOT0RFRlMucmVhbFBhdGgocGFyZW50KSwgbmFtZSk7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGZzLnJtZGlyU3luYyhwYXRoKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGlmICghZS5jb2RlKSB0aHJvdyBlOwogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICByZWFkZGlyOiAoZnVuY3Rpb24obm9kZSkgewogICAgICAgICAgICAgICAgdmFyIHBhdGggPSBOT0RFRlMucmVhbFBhdGgobm9kZSk7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBmcy5yZWFkZGlyU3luYyhwYXRoKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGlmICghZS5jb2RlKSB0aHJvdyBlOwogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBzeW1saW5rOiAoZnVuY3Rpb24ocGFyZW50LCBuZXdOYW1lLCBvbGRQYXRoKSB7CiAgICAgICAgICAgICAgICB2YXIgbmV3UGF0aCA9IFBBVEguam9pbjIoTk9ERUZTLnJlYWxQYXRoKHBhcmVudCksIG5ld05hbWUpOwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBmcy5zeW1saW5rU3luYyhvbGRQYXRoLCBuZXdQYXRoKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGlmICghZS5jb2RlKSB0aHJvdyBlOwogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTW2UuY29kZV0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICByZWFkbGluazogKGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgICAgICAgIHZhciBwYXRoID0gTk9ERUZTLnJlYWxQYXRoKG5vZGUpOwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBwYXRoID0gZnMucmVhZGxpbmtTeW5jKHBhdGgpOwogICAgICAgICAgICAgICAgICAgIHBhdGggPSBOT0RFSlNfUEFUSC5yZWxhdGl2ZShOT0RFSlNfUEFUSC5yZXNvbHZlKG5vZGUubW91bnQub3B0cy5yb290KSwgcGF0aCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGgKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIWUuY29kZSkgdGhyb3cgZTsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFU1tlLmNvZGVdKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgc3RyZWFtX29wczogewogICAgICAgICAgICBvcGVuOiAoZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgICAgICAgICAgICB2YXIgcGF0aCA9IE5PREVGUy5yZWFsUGF0aChzdHJlYW0ubm9kZSk7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGlmIChGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLm5mZCA9IGZzLm9wZW5TeW5jKHBhdGgsIE5PREVGUy5mbGFnc0Zvck5vZGUoc3RyZWFtLmZsYWdzKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGNsb3NlOiAoZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGlmIChGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkgJiYgc3RyZWFtLm5mZCkgewogICAgICAgICAgICAgICAgICAgICAgICBmcy5jbG9zZVN5bmMoc3RyZWFtLm5mZCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHJlYWQ6IChmdW5jdGlvbihzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7CiAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09PSAwKSByZXR1cm4gMDsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZzLnJlYWRTeW5jKHN0cmVhbS5uZmQsIE5PREVGUy5idWZmZXJGcm9tKGJ1ZmZlci5idWZmZXIpLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHdyaXRlOiAoZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnMud3JpdGVTeW5jKHN0cmVhbS5uZmQsIE5PREVGUy5idWZmZXJGcm9tKGJ1ZmZlci5idWZmZXIpLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGxsc2VlazogKGZ1bmN0aW9uKHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2UpIHsKICAgICAgICAgICAgICAgIHZhciBwb3NpdGlvbiA9IG9mZnNldDsKICAgICAgICAgICAgICAgIGlmICh3aGVuY2UgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0ucG9zaXRpb24KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2hlbmNlID09PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXQgPSBmcy5mc3RhdFN5bmMoc3RyZWFtLm5mZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSBzdGF0LnNpemUKICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVNbZS5jb2RlXSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IDApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcG9zaXRpb24KICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9OwogICAgdmFyIFdPUktFUkZTID0gewogICAgICAgIERJUl9NT0RFOiAxNjg5NSwKICAgICAgICBGSUxFX01PREU6IDMzMjc5LAogICAgICAgIHJlYWRlcjogbnVsbCwKICAgICAgICBtb3VudDogKGZ1bmN0aW9uKG1vdW50KSB7CiAgICAgICAgICAgIGFzc2VydChFTlZJUk9OTUVOVF9JU19XT1JLRVIpOwogICAgICAgICAgICBpZiAoIVdPUktFUkZTLnJlYWRlcikgV09SS0VSRlMucmVhZGVyID0gbmV3IEZpbGVSZWFkZXJTeW5jOwogICAgICAgICAgICB2YXIgcm9vdCA9IFdPUktFUkZTLmNyZWF0ZU5vZGUobnVsbCwgIi8iLCBXT1JLRVJGUy5ESVJfTU9ERSwgMCk7CiAgICAgICAgICAgIHZhciBjcmVhdGVkUGFyZW50cyA9IHt9OwoKICAgICAgICAgICAgZnVuY3Rpb24gZW5zdXJlUGFyZW50KHBhdGgpIHsKICAgICAgICAgICAgICAgIHZhciBwYXJ0cyA9IHBhdGguc3BsaXQoIi8iKTsKICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSByb290OwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGggLSAxOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB2YXIgY3VyciA9IHBhcnRzLnNsaWNlKDAsIGkgKyAxKS5qb2luKCIvIik7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcmVhdGVkUGFyZW50c1tjdXJyXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkUGFyZW50c1tjdXJyXSA9IFdPUktFUkZTLmNyZWF0ZU5vZGUocGFyZW50LCBwYXJ0c1tpXSwgV09SS0VSRlMuRElSX01PREUsIDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IGNyZWF0ZWRQYXJlbnRzW2N1cnJdCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIGJhc2UocGF0aCkgewogICAgICAgICAgICAgICAgdmFyIHBhcnRzID0gcGF0aC5zcGxpdCgiLyIpOwogICAgICAgICAgICAgICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdCiAgICAgICAgICAgIH0KICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChtb3VudC5vcHRzWyJmaWxlcyJdIHx8IFtdLCAoZnVuY3Rpb24oZmlsZSkgewogICAgICAgICAgICAgICAgV09SS0VSRlMuY3JlYXRlTm9kZShlbnN1cmVQYXJlbnQoZmlsZS5uYW1lKSwgYmFzZShmaWxlLm5hbWUpLCBXT1JLRVJGUy5GSUxFX01PREUsIDAsIGZpbGUsIGZpbGUubGFzdE1vZGlmaWVkRGF0ZSkKICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAobW91bnQub3B0c1siYmxvYnMiXSB8fCBbXSkuZm9yRWFjaCgoZnVuY3Rpb24ob2JqKSB7CiAgICAgICAgICAgICAgICBXT1JLRVJGUy5jcmVhdGVOb2RlKGVuc3VyZVBhcmVudChvYmpbIm5hbWUiXSksIGJhc2Uob2JqWyJuYW1lIl0pLCBXT1JLRVJGUy5GSUxFX01PREUsIDAsIG9ialsiZGF0YSJdKQogICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIChtb3VudC5vcHRzWyJwYWNrYWdlcyJdIHx8IFtdKS5mb3JFYWNoKChmdW5jdGlvbihwYWNrKSB7CiAgICAgICAgICAgICAgICBwYWNrWyJtZXRhZGF0YSJdLmZpbGVzLmZvckVhY2goKGZ1bmN0aW9uKGZpbGUpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IGZpbGUuZmlsZW5hbWUuc3Vic3RyKDEpOwogICAgICAgICAgICAgICAgICAgIFdPUktFUkZTLmNyZWF0ZU5vZGUoZW5zdXJlUGFyZW50KG5hbWUpLCBiYXNlKG5hbWUpLCBXT1JLRVJGUy5GSUxFX01PREUsIDAsIHBhY2tbImJsb2IiXS5zbGljZShmaWxlLnN0YXJ0LCBmaWxlLmVuZCkpCiAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgfSkpOwogICAgICAgICAgICByZXR1cm4gcm9vdAogICAgICAgIH0pLAogICAgICAgIGNyZWF0ZU5vZGU6IChmdW5jdGlvbihwYXJlbnQsIG5hbWUsIG1vZGUsIGRldiwgY29udGVudHMsIG10aW1lKSB7CiAgICAgICAgICAgIHZhciBub2RlID0gRlMuY3JlYXRlTm9kZShwYXJlbnQsIG5hbWUsIG1vZGUpOwogICAgICAgICAgICBub2RlLm1vZGUgPSBtb2RlOwogICAgICAgICAgICBub2RlLm5vZGVfb3BzID0gV09SS0VSRlMubm9kZV9vcHM7CiAgICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IFdPUktFUkZTLnN0cmVhbV9vcHM7CiAgICAgICAgICAgIG5vZGUudGltZXN0YW1wID0gKG10aW1lIHx8IG5ldyBEYXRlKS5nZXRUaW1lKCk7CiAgICAgICAgICAgIGFzc2VydChXT1JLRVJGUy5GSUxFX01PREUgIT09IFdPUktFUkZTLkRJUl9NT0RFKTsKICAgICAgICAgICAgaWYgKG1vZGUgPT09IFdPUktFUkZTLkZJTEVfTU9ERSkgewogICAgICAgICAgICAgICAgbm9kZS5zaXplID0gY29udGVudHMuc2l6ZTsKICAgICAgICAgICAgICAgIG5vZGUuY29udGVudHMgPSBjb250ZW50cwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbm9kZS5zaXplID0gNDA5NjsKICAgICAgICAgICAgICAgIG5vZGUuY29udGVudHMgPSB7fQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChwYXJlbnQpIHsKICAgICAgICAgICAgICAgIHBhcmVudC5jb250ZW50c1tuYW1lXSA9IG5vZGUKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbm9kZQogICAgICAgIH0pLAogICAgICAgIG5vZGVfb3BzOiB7CiAgICAgICAgICAgIGdldGF0dHI6IChmdW5jdGlvbihub2RlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIGRldjogMSwKICAgICAgICAgICAgICAgICAgICBpbm86IHVuZGVmaW5lZCwKICAgICAgICAgICAgICAgICAgICBtb2RlOiBub2RlLm1vZGUsCiAgICAgICAgICAgICAgICAgICAgbmxpbms6IDEsCiAgICAgICAgICAgICAgICAgICAgdWlkOiAwLAogICAgICAgICAgICAgICAgICAgIGdpZDogMCwKICAgICAgICAgICAgICAgICAgICByZGV2OiB1bmRlZmluZWQsCiAgICAgICAgICAgICAgICAgICAgc2l6ZTogbm9kZS5zaXplLAogICAgICAgICAgICAgICAgICAgIGF0aW1lOiBuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCksCiAgICAgICAgICAgICAgICAgICAgbXRpbWU6IG5ldyBEYXRlKG5vZGUudGltZXN0YW1wKSwKICAgICAgICAgICAgICAgICAgICBjdGltZTogbmV3IERhdGUobm9kZS50aW1lc3RhbXApLAogICAgICAgICAgICAgICAgICAgIGJsa3NpemU6IDQwOTYsCiAgICAgICAgICAgICAgICAgICAgYmxvY2tzOiBNYXRoLmNlaWwobm9kZS5zaXplIC8gNDA5NikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHNldGF0dHI6IChmdW5jdGlvbihub2RlLCBhdHRyKSB7CiAgICAgICAgICAgICAgICBpZiAoYXR0ci5tb2RlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBub2RlLm1vZGUgPSBhdHRyLm1vZGUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChhdHRyLnRpbWVzdGFtcCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgbm9kZS50aW1lc3RhbXAgPSBhdHRyLnRpbWVzdGFtcAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgbG9va3VwOiAoZnVuY3Rpb24ocGFyZW50LCBuYW1lKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9FTlQpCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBta25vZDogKGZ1bmN0aW9uKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSkKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHJlbmFtZTogKGZ1bmN0aW9uKG9sZE5vZGUsIG5ld0RpciwgbmV3TmFtZSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICB1bmxpbms6IChmdW5jdGlvbihwYXJlbnQsIG5hbWUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcm1kaXI6IChmdW5jdGlvbihwYXJlbnQsIG5hbWUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcmVhZGRpcjogKGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgICAgICAgIHZhciBlbnRyaWVzID0gWyIuIiwgIi4uIl07CiAgICAgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gbm9kZS5jb250ZW50cykgewogICAgICAgICAgICAgICAgICAgIGlmICghbm9kZS5jb250ZW50cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudHJpZXMucHVzaChrZXkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gZW50cmllcwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgc3ltbGluazogKGZ1bmN0aW9uKHBhcmVudCwgbmV3TmFtZSwgb2xkUGF0aCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICByZWFkbGluazogKGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKQogICAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgc3RyZWFtX29wczogewogICAgICAgICAgICByZWFkOiAoZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewogICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uID49IHN0cmVhbS5ub2RlLnNpemUpIHJldHVybiAwOwogICAgICAgICAgICAgICAgdmFyIGNodW5rID0gc3RyZWFtLm5vZGUuY29udGVudHMuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgbGVuZ3RoKTsKICAgICAgICAgICAgICAgIHZhciBhYiA9IFdPUktFUkZTLnJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihjaHVuayk7CiAgICAgICAgICAgICAgICBidWZmZXIuc2V0KG5ldyBVaW50OEFycmF5KGFiKSwgb2Zmc2V0KTsKICAgICAgICAgICAgICAgIHJldHVybiBjaHVuay5zaXplCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICB3cml0ZTogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTykKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGxsc2VlazogKGZ1bmN0aW9uKHN0cmVhbSwgb2Zmc2V0LCB3aGVuY2UpIHsKICAgICAgICAgICAgICAgIHZhciBwb3NpdGlvbiA9IG9mZnNldDsKICAgICAgICAgICAgICAgIGlmICh3aGVuY2UgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0ucG9zaXRpb24KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2hlbmNlID09PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKEZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSBzdHJlYW0ubm9kZS5zaXplCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDwgMCkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbgogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH07CiAgICBTVEFUSUNUT1AgKz0gMTY7CiAgICBTVEFUSUNUT1AgKz0gMTY7CiAgICBTVEFUSUNUT1AgKz0gMTY7CiAgICB2YXIgRlMgPSB7CiAgICAgICAgcm9vdDogbnVsbCwKICAgICAgICBtb3VudHM6IFtdLAogICAgICAgIGRldmljZXM6IHt9LAogICAgICAgIHN0cmVhbXM6IFtdLAogICAgICAgIG5leHRJbm9kZTogMSwKICAgICAgICBuYW1lVGFibGU6IG51bGwsCiAgICAgICAgY3VycmVudFBhdGg6ICIvIiwKICAgICAgICBpbml0aWFsaXplZDogZmFsc2UsCiAgICAgICAgaWdub3JlUGVybWlzc2lvbnM6IHRydWUsCiAgICAgICAgdHJhY2tpbmdEZWxlZ2F0ZToge30sCiAgICAgICAgdHJhY2tpbmc6IHsKICAgICAgICAgICAgb3BlbkZsYWdzOiB7CiAgICAgICAgICAgICAgICBSRUFEOiAxLAogICAgICAgICAgICAgICAgV1JJVEU6IDIKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgRXJybm9FcnJvcjogbnVsbCwKICAgICAgICBnZW5lcmljRXJyb3JzOiB7fSwKICAgICAgICBmaWxlc3lzdGVtczogbnVsbCwKICAgICAgICBzeW5jRlNSZXF1ZXN0czogMCwKICAgICAgICBoYW5kbGVGU0Vycm9yOiAoZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIHRocm93IGUgKyAiIDogIiArIHN0YWNrVHJhY2UoKTsKICAgICAgICAgICAgcmV0dXJuIF9fX3NldEVyck5vKGUuZXJybm8pCiAgICAgICAgfSksCiAgICAgICAgbG9va3VwUGF0aDogKGZ1bmN0aW9uKHBhdGgsIG9wdHMpIHsKICAgICAgICAgICAgcGF0aCA9IFBBVEgucmVzb2x2ZShGUy5jd2QoKSwgcGF0aCk7CiAgICAgICAgICAgIG9wdHMgPSBvcHRzIHx8IHt9OwogICAgICAgICAgICBpZiAoIXBhdGgpIHJldHVybiB7CiAgICAgICAgICAgICAgICBwYXRoOiAiIiwKICAgICAgICAgICAgICAgIG5vZGU6IG51bGwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgdmFyIGRlZmF1bHRzID0gewogICAgICAgICAgICAgICAgZm9sbG93X21vdW50OiB0cnVlLAogICAgICAgICAgICAgICAgcmVjdXJzZV9jb3VudDogMAogICAgICAgICAgICB9OwogICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gZGVmYXVsdHMpIHsKICAgICAgICAgICAgICAgIGlmIChvcHRzW2tleV0gPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIG9wdHNba2V5XSA9IGRlZmF1bHRzW2tleV0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAob3B0cy5yZWN1cnNlX2NvdW50ID4gOCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUxPT1ApCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHBhcnRzID0gUEFUSC5ub3JtYWxpemVBcnJheShwYXRoLnNwbGl0KCIvIikuZmlsdGVyKChmdW5jdGlvbihwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gISFwCiAgICAgICAgICAgIH0pKSwgZmFsc2UpOwogICAgICAgICAgICB2YXIgY3VycmVudCA9IEZTLnJvb3Q7CiAgICAgICAgICAgIHZhciBjdXJyZW50X3BhdGggPSAiLyI7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIHZhciBpc2xhc3QgPSBpID09PSBwYXJ0cy5sZW5ndGggLSAxOwogICAgICAgICAgICAgICAgaWYgKGlzbGFzdCAmJiBvcHRzLnBhcmVudCkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjdXJyZW50ID0gRlMubG9va3VwTm9kZShjdXJyZW50LCBwYXJ0c1tpXSk7CiAgICAgICAgICAgICAgICBjdXJyZW50X3BhdGggPSBQQVRILmpvaW4yKGN1cnJlbnRfcGF0aCwgcGFydHNbaV0pOwogICAgICAgICAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChjdXJyZW50KSkgewogICAgICAgICAgICAgICAgICAgIGlmICghaXNsYXN0IHx8IGlzbGFzdCAmJiBvcHRzLmZvbGxvd19tb3VudCkgewogICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5tb3VudGVkLnJvb3QKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIWlzbGFzdCB8fCBvcHRzLmZvbGxvdykgewogICAgICAgICAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKEZTLmlzTGluayhjdXJyZW50Lm1vZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gRlMucmVhZGxpbmsoY3VycmVudF9wYXRoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9wYXRoID0gUEFUSC5yZXNvbHZlKFBBVEguZGlybmFtZShjdXJyZW50X3BhdGgpLCBsaW5rKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgoY3VycmVudF9wYXRoLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN1cnNlX2NvdW50OiBvcHRzLnJlY3Vyc2VfY291bnQKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBsb29rdXAubm9kZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50KysgPiA0MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUxPT1ApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIHBhdGg6IGN1cnJlbnRfcGF0aCwKICAgICAgICAgICAgICAgIG5vZGU6IGN1cnJlbnQKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIGdldFBhdGg6IChmdW5jdGlvbihub2RlKSB7CiAgICAgICAgICAgIHZhciBwYXRoOwogICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSkgewogICAgICAgICAgICAgICAgICAgIHZhciBtb3VudCA9IG5vZGUubW91bnQubW91bnRwb2ludDsKICAgICAgICAgICAgICAgICAgICBpZiAoIXBhdGgpIHJldHVybiBtb3VudDsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW91bnRbbW91bnQubGVuZ3RoIC0gMV0gIT09ICIvIiA/IG1vdW50ICsgIi8iICsgcGF0aCA6IG1vdW50ICsgcGF0aAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcGF0aCA9IHBhdGggPyBub2RlLm5hbWUgKyAiLyIgKyBwYXRoIDogbm9kZS5uYW1lOwogICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50CiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBoYXNoTmFtZTogKGZ1bmN0aW9uKHBhcmVudGlkLCBuYW1lKSB7CiAgICAgICAgICAgIHZhciBoYXNoID0gMDsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBoYXNoID0gKGhhc2ggPDwgNSkgLSBoYXNoICsgbmFtZS5jaGFyQ29kZUF0KGkpIHwgMAogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAocGFyZW50aWQgKyBoYXNoID4+PiAwKSAlIEZTLm5hbWVUYWJsZS5sZW5ndGgKICAgICAgICB9KSwKICAgICAgICBoYXNoQWRkTm9kZTogKGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCwgbm9kZS5uYW1lKTsKICAgICAgICAgICAgbm9kZS5uYW1lX25leHQgPSBGUy5uYW1lVGFibGVbaGFzaF07CiAgICAgICAgICAgIEZTLm5hbWVUYWJsZVtoYXNoXSA9IG5vZGUKICAgICAgICB9KSwKICAgICAgICBoYXNoUmVtb3ZlTm9kZTogKGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShub2RlLnBhcmVudC5pZCwgbm9kZS5uYW1lKTsKICAgICAgICAgICAgaWYgKEZTLm5hbWVUYWJsZVtoYXNoXSA9PT0gbm9kZSkgewogICAgICAgICAgICAgICAgRlMubmFtZVRhYmxlW2hhc2hdID0gbm9kZS5uYW1lX25leHQKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gRlMubmFtZVRhYmxlW2hhc2hdOwogICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudC5uYW1lX25leHQgPT09IG5vZGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5uYW1lX25leHQgPSBub2RlLm5hbWVfbmV4dDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmFtZV9uZXh0CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBsb29rdXBOb2RlOiAoZnVuY3Rpb24ocGFyZW50LCBuYW1lKSB7CiAgICAgICAgICAgIHZhciBlcnIgPSBGUy5tYXlMb29rdXAocGFyZW50KTsKICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyLCBwYXJlbnQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGhhc2ggPSBGUy5oYXNoTmFtZShwYXJlbnQuaWQsIG5hbWUpOwogICAgICAgICAgICBmb3IgKHZhciBub2RlID0gRlMubmFtZVRhYmxlW2hhc2hdOyBub2RlOyBub2RlID0gbm9kZS5uYW1lX25leHQpIHsKICAgICAgICAgICAgICAgIHZhciBub2RlTmFtZSA9IG5vZGUubmFtZTsKICAgICAgICAgICAgICAgIGlmIChub2RlLnBhcmVudC5pZCA9PT0gcGFyZW50LmlkICYmIG5vZGVOYW1lID09PSBuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gRlMubG9va3VwKHBhcmVudCwgbmFtZSkKICAgICAgICB9KSwKICAgICAgICBjcmVhdGVOb2RlOiAoZnVuY3Rpb24ocGFyZW50LCBuYW1lLCBtb2RlLCByZGV2KSB7CiAgICAgICAgICAgIGlmICghRlMuRlNOb2RlKSB7CiAgICAgICAgICAgICAgICBGUy5GU05vZGUgPSAoZnVuY3Rpb24ocGFyZW50LCBuYW1lLCBtb2RlLCByZGV2KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gdGhpcwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDsKICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdW50ID0gcGFyZW50Lm1vdW50OwogICAgICAgICAgICAgICAgICAgIHRoaXMubW91bnRlZCA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5pZCA9IEZTLm5leHRJbm9kZSsrOwogICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gbW9kZTsKICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGVfb3BzID0ge307CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHJlYW1fb3BzID0ge307CiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZGV2ID0gcmRldgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBGUy5GU05vZGUucHJvdG90eXBlID0ge307CiAgICAgICAgICAgICAgICB2YXIgcmVhZE1vZGUgPSAyOTIgfCA3MzsKICAgICAgICAgICAgICAgIHZhciB3cml0ZU1vZGUgPSAxNDY7CiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhGUy5GU05vZGUucHJvdG90eXBlLCB7CiAgICAgICAgICAgICAgICAgICAgcmVhZDogewogICAgICAgICAgICAgICAgICAgICAgICBnZXQ6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAodGhpcy5tb2RlICYgcmVhZE1vZGUpID09PSByZWFkTW9kZQogICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgc2V0OiAoZnVuY3Rpb24odmFsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPyB0aGlzLm1vZGUgfD0gcmVhZE1vZGUgOiB0aGlzLm1vZGUgJj0gfnJlYWRNb2RlCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB3cml0ZTogewogICAgICAgICAgICAgICAgICAgICAgICBnZXQ6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAodGhpcy5tb2RlICYgd3JpdGVNb2RlKSA9PT0gd3JpdGVNb2RlCiAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IChmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA/IHRoaXMubW9kZSB8PSB3cml0ZU1vZGUgOiB0aGlzLm1vZGUgJj0gfndyaXRlTW9kZQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaXNGb2xkZXI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRlMuaXNEaXIodGhpcy5tb2RlKQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaXNEZXZpY2U6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRlMuaXNDaHJkZXYodGhpcy5tb2RlKQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIG5vZGUgPSBuZXcgRlMuRlNOb2RlKHBhcmVudCwgbmFtZSwgbW9kZSwgcmRldik7CiAgICAgICAgICAgIEZTLmhhc2hBZGROb2RlKG5vZGUpOwogICAgICAgICAgICByZXR1cm4gbm9kZQogICAgICAgIH0pLAogICAgICAgIGRlc3Ryb3lOb2RlOiAoZnVuY3Rpb24obm9kZSkgewogICAgICAgICAgICBGUy5oYXNoUmVtb3ZlTm9kZShub2RlKQogICAgICAgIH0pLAogICAgICAgIGlzUm9vdDogKGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgICAgcmV0dXJuIG5vZGUgPT09IG5vZGUucGFyZW50CiAgICAgICAgfSksCiAgICAgICAgaXNNb3VudHBvaW50OiAoZnVuY3Rpb24obm9kZSkgewogICAgICAgICAgICByZXR1cm4gISFub2RlLm1vdW50ZWQKICAgICAgICB9KSwKICAgICAgICBpc0ZpbGU6IChmdW5jdGlvbihtb2RlKSB7CiAgICAgICAgICAgIHJldHVybiAobW9kZSAmIDYxNDQwKSA9PT0gMzI3NjgKICAgICAgICB9KSwKICAgICAgICBpc0RpcjogKGZ1bmN0aW9uKG1vZGUpIHsKICAgICAgICAgICAgcmV0dXJuIChtb2RlICYgNjE0NDApID09PSAxNjM4NAogICAgICAgIH0pLAogICAgICAgIGlzTGluazogKGZ1bmN0aW9uKG1vZGUpIHsKICAgICAgICAgICAgcmV0dXJuIChtb2RlICYgNjE0NDApID09PSA0MDk2MAogICAgICAgIH0pLAogICAgICAgIGlzQ2hyZGV2OiAoZnVuY3Rpb24obW9kZSkgewogICAgICAgICAgICByZXR1cm4gKG1vZGUgJiA2MTQ0MCkgPT09IDgxOTIKICAgICAgICB9KSwKICAgICAgICBpc0Jsa2RldjogKGZ1bmN0aW9uKG1vZGUpIHsKICAgICAgICAgICAgcmV0dXJuIChtb2RlICYgNjE0NDApID09PSAyNDU3NgogICAgICAgIH0pLAogICAgICAgIGlzRklGTzogKGZ1bmN0aW9uKG1vZGUpIHsKICAgICAgICAgICAgcmV0dXJuIChtb2RlICYgNjE0NDApID09PSA0MDk2CiAgICAgICAgfSksCiAgICAgICAgaXNTb2NrZXQ6IChmdW5jdGlvbihtb2RlKSB7CiAgICAgICAgICAgIHJldHVybiAobW9kZSAmIDQ5MTUyKSA9PT0gNDkxNTIKICAgICAgICB9KSwKICAgICAgICBmbGFnTW9kZXM6IHsKICAgICAgICAgICAgInIiOiAwLAogICAgICAgICAgICAicnMiOiAxMDUyNjcyLAogICAgICAgICAgICAicisiOiAyLAogICAgICAgICAgICAidyI6IDU3NywKICAgICAgICAgICAgInd4IjogNzA1LAogICAgICAgICAgICAieHciOiA3MDUsCiAgICAgICAgICAgICJ3KyI6IDU3OCwKICAgICAgICAgICAgInd4KyI6IDcwNiwKICAgICAgICAgICAgInh3KyI6IDcwNiwKICAgICAgICAgICAgImEiOiAxMDg5LAogICAgICAgICAgICAiYXgiOiAxMjE3LAogICAgICAgICAgICAieGEiOiAxMjE3LAogICAgICAgICAgICAiYSsiOiAxMDkwLAogICAgICAgICAgICAiYXgrIjogMTIxOCwKICAgICAgICAgICAgInhhKyI6IDEyMTgKICAgICAgICB9LAogICAgICAgIG1vZGVTdHJpbmdUb0ZsYWdzOiAoZnVuY3Rpb24oc3RyKSB7CiAgICAgICAgICAgIHZhciBmbGFncyA9IEZTLmZsYWdNb2Rlc1tzdHJdOwogICAgICAgICAgICBpZiAodHlwZW9mIGZsYWdzID09PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGZpbGUgb3BlbiBtb2RlOiAiICsgc3RyKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBmbGFncwogICAgICAgIH0pLAogICAgICAgIGZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nOiAoZnVuY3Rpb24oZmxhZykgewogICAgICAgICAgICB2YXIgcGVybXMgPSBbInIiLCAidyIsICJydyJdW2ZsYWcgJiAzXTsKICAgICAgICAgICAgaWYgKGZsYWcgJiA1MTIpIHsKICAgICAgICAgICAgICAgIHBlcm1zICs9ICJ3IgogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBwZXJtcwogICAgICAgIH0pLAogICAgICAgIG5vZGVQZXJtaXNzaW9uczogKGZ1bmN0aW9uKG5vZGUsIHBlcm1zKSB7CiAgICAgICAgICAgIGlmIChGUy5pZ25vcmVQZXJtaXNzaW9ucykgewogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocGVybXMuaW5kZXhPZigiciIpICE9PSAtMSAmJiAhKG5vZGUubW9kZSAmIDI5MikpIHsKICAgICAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQUNDRVMKICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRleE9mKCJ3IikgIT09IC0xICYmICEobm9kZS5tb2RlICYgMTQ2KSkgewogICAgICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVBQ0NFUwogICAgICAgICAgICB9IGVsc2UgaWYgKHBlcm1zLmluZGV4T2YoIngiKSAhPT0gLTEgJiYgIShub2RlLm1vZGUgJiA3MykpIHsKICAgICAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQUNDRVMKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0pLAogICAgICAgIG1heUxvb2t1cDogKGZ1bmN0aW9uKGRpcikgewogICAgICAgICAgICB2YXIgZXJyID0gRlMubm9kZVBlcm1pc3Npb25zKGRpciwgIngiKTsKICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIGVycjsKICAgICAgICAgICAgaWYgKCFkaXIubm9kZV9vcHMubG9va3VwKSByZXR1cm4gRVJSTk9fQ09ERVMuRUFDQ0VTOwogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0pLAogICAgICAgIG1heUNyZWF0ZTogKGZ1bmN0aW9uKGRpciwgbmFtZSkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2RlKGRpciwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUVYSVNUCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9CiAgICAgICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAid3giKQogICAgICAgIH0pLAogICAgICAgIG1heURlbGV0ZTogKGZ1bmN0aW9uKGRpciwgbmFtZSwgaXNkaXIpIHsKICAgICAgICAgICAgdmFyIG5vZGU7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBub2RlID0gRlMubG9va3VwTm9kZShkaXIsIG5hbWUpCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBlLmVycm5vCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGVyciA9IEZTLm5vZGVQZXJtaXNzaW9ucyhkaXIsICJ3eCIpOwogICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZXJyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGlzZGlyKSB7CiAgICAgICAgICAgICAgICBpZiAoIUZTLmlzRGlyKG5vZGUubW9kZSkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRU5PVERJUgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSB8fCBGUy5nZXRQYXRoKG5vZGUpID09PSBGUy5jd2QoKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQlVTWQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlTRElSCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9KSwKICAgICAgICBtYXlPcGVuOiAoZnVuY3Rpb24obm9kZSwgZmxhZ3MpIHsKICAgICAgICAgICAgaWYgKCFub2RlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRU5PRU5UCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKEZTLmlzTGluayhub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUxPT1AKICAgICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICBpZiAoRlMuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoZmxhZ3MpICE9PSAiciIgfHwgZmxhZ3MgJiA1MTIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlTRElSCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIEZTLm5vZGVQZXJtaXNzaW9ucyhub2RlLCBGUy5mbGFnc1RvUGVybWlzc2lvblN0cmluZyhmbGFncykpCiAgICAgICAgfSksCiAgICAgICAgTUFYX09QRU5fRkRTOiA0MDk2LAogICAgICAgIG5leHRmZDogKGZ1bmN0aW9uKGZkX3N0YXJ0LCBmZF9lbmQpIHsKICAgICAgICAgICAgZmRfc3RhcnQgPSBmZF9zdGFydCB8fCAwOwogICAgICAgICAgICBmZF9lbmQgPSBmZF9lbmQgfHwgRlMuTUFYX09QRU5fRkRTOwogICAgICAgICAgICBmb3IgKHZhciBmZCA9IGZkX3N0YXJ0OyBmZCA8PSBmZF9lbmQ7IGZkKyspIHsKICAgICAgICAgICAgICAgIGlmICghRlMuc3RyZWFtc1tmZF0pIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTUZJTEUpCiAgICAgICAgfSksCiAgICAgICAgZ2V0U3RyZWFtOiAoZnVuY3Rpb24oZmQpIHsKICAgICAgICAgICAgcmV0dXJuIEZTLnN0cmVhbXNbZmRdCiAgICAgICAgfSksCiAgICAgICAgY3JlYXRlU3RyZWFtOiAoZnVuY3Rpb24oc3RyZWFtLCBmZF9zdGFydCwgZmRfZW5kKSB7CiAgICAgICAgICAgIGlmICghRlMuRlNTdHJlYW0pIHsKICAgICAgICAgICAgICAgIEZTLkZTU3RyZWFtID0gKGZ1bmN0aW9uKCkge30pOwogICAgICAgICAgICAgICAgRlMuRlNTdHJlYW0ucHJvdG90eXBlID0ge307CiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhGUy5GU1N0cmVhbS5wcm90b3R5cGUsIHsKICAgICAgICAgICAgICAgICAgICBvYmplY3Q6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ub2RlCiAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IChmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZSA9IHZhbAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaXNSZWFkOiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGdldDogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLmZsYWdzICYgMjA5NzE1NSkgIT09IDEKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIGlzV3JpdGU6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuZmxhZ3MgJiAyMDk3MTU1KSAhPT0gMAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgaXNBcHBlbmQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mbGFncyAmIDEwMjQKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBuZXdTdHJlYW0gPSBuZXcgRlMuRlNTdHJlYW07CiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gc3RyZWFtKSB7CiAgICAgICAgICAgICAgICBuZXdTdHJlYW1bcF0gPSBzdHJlYW1bcF0KICAgICAgICAgICAgfQogICAgICAgICAgICBzdHJlYW0gPSBuZXdTdHJlYW07CiAgICAgICAgICAgIHZhciBmZCA9IEZTLm5leHRmZChmZF9zdGFydCwgZmRfZW5kKTsKICAgICAgICAgICAgc3RyZWFtLmZkID0gZmQ7CiAgICAgICAgICAgIEZTLnN0cmVhbXNbZmRdID0gc3RyZWFtOwogICAgICAgICAgICByZXR1cm4gc3RyZWFtCiAgICAgICAgfSksCiAgICAgICAgY2xvc2VTdHJlYW06IChmdW5jdGlvbihmZCkgewogICAgICAgICAgICBGUy5zdHJlYW1zW2ZkXSA9IG51bGwKICAgICAgICB9KSwKICAgICAgICBjaHJkZXZfc3RyZWFtX29wczogewogICAgICAgICAgICBvcGVuOiAoZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgICAgICAgICAgICB2YXIgZGV2aWNlID0gRlMuZ2V0RGV2aWNlKHN0cmVhbS5ub2RlLnJkZXYpOwogICAgICAgICAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMgPSBkZXZpY2Uuc3RyZWFtX29wczsKICAgICAgICAgICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5vcGVuKSB7CiAgICAgICAgICAgICAgICAgICAgc3RyZWFtLnN0cmVhbV9vcHMub3BlbihzdHJlYW0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBsbHNlZWs6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSkKICAgICAgICAgICAgfSkKICAgICAgICB9LAogICAgICAgIG1ham9yOiAoZnVuY3Rpb24oZGV2KSB7CiAgICAgICAgICAgIHJldHVybiBkZXYgPj4gOAogICAgICAgIH0pLAogICAgICAgIG1pbm9yOiAoZnVuY3Rpb24oZGV2KSB7CiAgICAgICAgICAgIHJldHVybiBkZXYgJiAyNTUKICAgICAgICB9KSwKICAgICAgICBtYWtlZGV2OiAoZnVuY3Rpb24obWEsIG1pKSB7CiAgICAgICAgICAgIHJldHVybiBtYSA8PCA4IHwgbWkKICAgICAgICB9KSwKICAgICAgICByZWdpc3RlckRldmljZTogKGZ1bmN0aW9uKGRldiwgb3BzKSB7CiAgICAgICAgICAgIEZTLmRldmljZXNbZGV2XSA9IHsKICAgICAgICAgICAgICAgIHN0cmVhbV9vcHM6IG9wcwogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgZ2V0RGV2aWNlOiAoZnVuY3Rpb24oZGV2KSB7CiAgICAgICAgICAgIHJldHVybiBGUy5kZXZpY2VzW2Rldl0KICAgICAgICB9KSwKICAgICAgICBnZXRNb3VudHM6IChmdW5jdGlvbihtb3VudCkgewogICAgICAgICAgICB2YXIgbW91bnRzID0gW107CiAgICAgICAgICAgIHZhciBjaGVjayA9IFttb3VudF07CiAgICAgICAgICAgIHdoaWxlIChjaGVjay5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHZhciBtID0gY2hlY2sucG9wKCk7CiAgICAgICAgICAgICAgICBtb3VudHMucHVzaChtKTsKICAgICAgICAgICAgICAgIGNoZWNrLnB1c2guYXBwbHkoY2hlY2ssIG0ubW91bnRzKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBtb3VudHMKICAgICAgICB9KSwKICAgICAgICBzeW5jZnM6IChmdW5jdGlvbihwb3B1bGF0ZSwgY2FsbGJhY2spIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBwb3B1bGF0ZSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgY2FsbGJhY2sgPSBwb3B1bGF0ZTsKICAgICAgICAgICAgICAgIHBvcHVsYXRlID0gZmFsc2UKICAgICAgICAgICAgfQogICAgICAgICAgICBGUy5zeW5jRlNSZXF1ZXN0cysrOwogICAgICAgICAgICBpZiAoRlMuc3luY0ZTUmVxdWVzdHMgPiAxKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygid2FybmluZzogIiArIEZTLnN5bmNGU1JlcXVlc3RzICsgIiBGUy5zeW5jZnMgb3BlcmF0aW9ucyBpbiBmbGlnaHQgYXQgb25jZSwgcHJvYmFibHkganVzdCBkb2luZyBleHRyYSB3b3JrIikKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgbW91bnRzID0gRlMuZ2V0TW91bnRzKEZTLnJvb3QubW91bnQpOwogICAgICAgICAgICB2YXIgY29tcGxldGVkID0gMDsKCiAgICAgICAgICAgIGZ1bmN0aW9uIGRvQ2FsbGJhY2soZXJyKSB7CiAgICAgICAgICAgICAgICBhc3NlcnQoRlMuc3luY0ZTUmVxdWVzdHMgPiAwKTsKICAgICAgICAgICAgICAgIEZTLnN5bmNGU1JlcXVlc3RzLS07CiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBkb25lKGVycikgewogICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgIGlmICghZG9uZS5lcnJvcmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUuZXJyb3JlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0NhbGxiYWNrKGVycikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoKytjb21wbGV0ZWQgPj0gbW91bnRzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIGRvQ2FsbGJhY2sobnVsbCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBtb3VudHMuZm9yRWFjaCgoZnVuY3Rpb24obW91bnQpIHsKICAgICAgICAgICAgICAgIGlmICghbW91bnQudHlwZS5zeW5jZnMpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbW91bnQudHlwZS5zeW5jZnMobW91bnQsIHBvcHVsYXRlLCBkb25lKQogICAgICAgICAgICB9KSkKICAgICAgICB9KSwKICAgICAgICBtb3VudDogKGZ1bmN0aW9uKHR5cGUsIG9wdHMsIG1vdW50cG9pbnQpIHsKICAgICAgICAgICAgdmFyIHJvb3QgPSBtb3VudHBvaW50ID09PSAiLyI7CiAgICAgICAgICAgIHZhciBwc2V1ZG8gPSAhbW91bnRwb2ludDsKICAgICAgICAgICAgdmFyIG5vZGU7CiAgICAgICAgICAgIGlmIChyb290ICYmIEZTLnJvb3QpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKQogICAgICAgICAgICB9IGVsc2UgaWYgKCFyb290ICYmICFwc2V1ZG8pIHsKICAgICAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKG1vdW50cG9pbnQsIHsKICAgICAgICAgICAgICAgICAgICBmb2xsb3dfbW91bnQ6IGZhbHNlCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIG1vdW50cG9pbnQgPSBsb29rdXAucGF0aDsKICAgICAgICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKICAgICAgICAgICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQobm9kZSkpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghRlMuaXNEaXIobm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RESVIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIG1vdW50ID0gewogICAgICAgICAgICAgICAgdHlwZTogdHlwZSwKICAgICAgICAgICAgICAgIG9wdHM6IG9wdHMsCiAgICAgICAgICAgICAgICBtb3VudHBvaW50OiBtb3VudHBvaW50LAogICAgICAgICAgICAgICAgbW91bnRzOiBbXQogICAgICAgICAgICB9OwogICAgICAgICAgICB2YXIgbW91bnRSb290ID0gdHlwZS5tb3VudChtb3VudCk7CiAgICAgICAgICAgIG1vdW50Um9vdC5tb3VudCA9IG1vdW50OwogICAgICAgICAgICBtb3VudC5yb290ID0gbW91bnRSb290OwogICAgICAgICAgICBpZiAocm9vdCkgewogICAgICAgICAgICAgICAgRlMucm9vdCA9IG1vdW50Um9vdAogICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUpIHsKICAgICAgICAgICAgICAgIG5vZGUubW91bnRlZCA9IG1vdW50OwogICAgICAgICAgICAgICAgaWYgKG5vZGUubW91bnQpIHsKICAgICAgICAgICAgICAgICAgICBub2RlLm1vdW50Lm1vdW50cy5wdXNoKG1vdW50KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBtb3VudFJvb3QKICAgICAgICB9KSwKICAgICAgICB1bm1vdW50OiAoZnVuY3Rpb24obW91bnRwb2ludCkgewogICAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChtb3VudHBvaW50LCB7CiAgICAgICAgICAgICAgICBmb2xsb3dfbW91bnQ6IGZhbHNlCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpZiAoIUZTLmlzTW91bnRwb2ludChsb29rdXAubm9kZSkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOwogICAgICAgICAgICB2YXIgbW91bnQgPSBub2RlLm1vdW50ZWQ7CiAgICAgICAgICAgIHZhciBtb3VudHMgPSBGUy5nZXRNb3VudHMobW91bnQpOwogICAgICAgICAgICBPYmplY3Qua2V5cyhGUy5uYW1lVGFibGUpLmZvckVhY2goKGZ1bmN0aW9uKGhhc2gpIHsKICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gRlMubmFtZVRhYmxlW2hhc2hdOwogICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IGN1cnJlbnQubmFtZV9uZXh0OwogICAgICAgICAgICAgICAgICAgIGlmIChtb3VudHMuaW5kZXhPZihjdXJyZW50Lm1vdW50KSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgRlMuZGVzdHJveU5vZGUoY3VycmVudCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IG5leHQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkpOwogICAgICAgICAgICBub2RlLm1vdW50ZWQgPSBudWxsOwogICAgICAgICAgICB2YXIgaWR4ID0gbm9kZS5tb3VudC5tb3VudHMuaW5kZXhPZihtb3VudCk7CiAgICAgICAgICAgIGFzc2VydChpZHggIT09IC0xKTsKICAgICAgICAgICAgbm9kZS5tb3VudC5tb3VudHMuc3BsaWNlKGlkeCwgMSkKICAgICAgICB9KSwKICAgICAgICBsb29rdXA6IChmdW5jdGlvbihwYXJlbnQsIG5hbWUpIHsKICAgICAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5sb29rdXAocGFyZW50LCBuYW1lKQogICAgICAgIH0pLAogICAgICAgIG1rbm9kOiAoZnVuY3Rpb24ocGF0aCwgbW9kZSwgZGV2KSB7CiAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsKICAgICAgICAgICAgICAgIHBhcmVudDogdHJ1ZQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwogICAgICAgICAgICB2YXIgbmFtZSA9IFBBVEguYmFzZW5hbWUocGF0aCk7CiAgICAgICAgICAgIGlmICghbmFtZSB8fCBuYW1lID09PSAiLiIgfHwgbmFtZSA9PT0gIi4uIikgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBlcnIgPSBGUy5tYXlDcmVhdGUocGFyZW50LCBuYW1lKTsKICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyZW50Lm5vZGVfb3BzLm1rbm9kKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcGFyZW50Lm5vZGVfb3BzLm1rbm9kKHBhcmVudCwgbmFtZSwgbW9kZSwgZGV2KQogICAgICAgIH0pLAogICAgICAgIGNyZWF0ZTogKGZ1bmN0aW9uKHBhdGgsIG1vZGUpIHsKICAgICAgICAgICAgbW9kZSA9IG1vZGUgIT09IHVuZGVmaW5lZCA/IG1vZGUgOiA0Mzg7CiAgICAgICAgICAgIG1vZGUgJj0gNDA5NTsKICAgICAgICAgICAgbW9kZSB8PSAzMjc2ODsKICAgICAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIDApCiAgICAgICAgfSksCiAgICAgICAgbWtkaXI6IChmdW5jdGlvbihwYXRoLCBtb2RlKSB7CiAgICAgICAgICAgIG1vZGUgPSBtb2RlICE9PSB1bmRlZmluZWQgPyBtb2RlIDogNTExOwogICAgICAgICAgICBtb2RlICY9IDUxMSB8IDUxMjsKICAgICAgICAgICAgbW9kZSB8PSAxNjM4NDsKICAgICAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIDApCiAgICAgICAgfSksCiAgICAgICAgbWtkaXJUcmVlOiAoZnVuY3Rpb24ocGF0aCwgbW9kZSkgewogICAgICAgICAgICB2YXIgZGlycyA9IHBhdGguc3BsaXQoIi8iKTsKICAgICAgICAgICAgdmFyIGQgPSAiIjsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXJzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICBpZiAoIWRpcnNbaV0pIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgZCArPSAiLyIgKyBkaXJzW2ldOwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBGUy5ta2RpcihkLCBtb2RlKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChlLmVycm5vICE9IEVSUk5PX0NPREVTLkVFWElTVCkgdGhyb3cgZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgbWtkZXY6IChmdW5jdGlvbihwYXRoLCBtb2RlLCBkZXYpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBkZXYgPT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgICAgICBkZXYgPSBtb2RlOwogICAgICAgICAgICAgICAgbW9kZSA9IDQzOAogICAgICAgICAgICB9CiAgICAgICAgICAgIG1vZGUgfD0gODE5MjsKICAgICAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIGRldikKICAgICAgICB9KSwKICAgICAgICBzeW1saW5rOiAoZnVuY3Rpb24ob2xkcGF0aCwgbmV3cGF0aCkgewogICAgICAgICAgICBpZiAoIVBBVEgucmVzb2x2ZShvbGRwYXRoKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKG5ld3BhdGgsIHsKICAgICAgICAgICAgICAgIHBhcmVudDogdHJ1ZQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwogICAgICAgICAgICBpZiAoIXBhcmVudCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBuZXduYW1lID0gUEFUSC5iYXNlbmFtZShuZXdwYXRoKTsKICAgICAgICAgICAgdmFyIGVyciA9IEZTLm1heUNyZWF0ZShwYXJlbnQsIG5ld25hbWUpOwogICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMuc3ltbGluaykgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5zeW1saW5rKHBhcmVudCwgbmV3bmFtZSwgb2xkcGF0aCkKICAgICAgICB9KSwKICAgICAgICByZW5hbWU6IChmdW5jdGlvbihvbGRfcGF0aCwgbmV3X3BhdGgpIHsKICAgICAgICAgICAgdmFyIG9sZF9kaXJuYW1lID0gUEFUSC5kaXJuYW1lKG9sZF9wYXRoKTsKICAgICAgICAgICAgdmFyIG5ld19kaXJuYW1lID0gUEFUSC5kaXJuYW1lKG5ld19wYXRoKTsKICAgICAgICAgICAgdmFyIG9sZF9uYW1lID0gUEFUSC5iYXNlbmFtZShvbGRfcGF0aCk7CiAgICAgICAgICAgIHZhciBuZXdfbmFtZSA9IFBBVEguYmFzZW5hbWUobmV3X3BhdGgpOwogICAgICAgICAgICB2YXIgbG9va3VwLCBvbGRfZGlyLCBuZXdfZGlyOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0aChvbGRfcGF0aCwgewogICAgICAgICAgICAgICAgICAgIHBhcmVudDogdHJ1ZQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBvbGRfZGlyID0gbG9va3VwLm5vZGU7CiAgICAgICAgICAgICAgICBsb29rdXAgPSBGUy5sb29rdXBQYXRoKG5ld19wYXRoLCB7CiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiB0cnVlCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIG5ld19kaXIgPSBsb29rdXAubm9kZQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIW9sZF9kaXIgfHwgIW5ld19kaXIpIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCk7CiAgICAgICAgICAgIGlmIChvbGRfZGlyLm1vdW50ICE9PSBuZXdfZGlyLm1vdW50KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FWERFVikKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgb2xkX25vZGUgPSBGUy5sb29rdXBOb2RlKG9sZF9kaXIsIG9sZF9uYW1lKTsKICAgICAgICAgICAgdmFyIHJlbGF0aXZlID0gUEFUSC5yZWxhdGl2ZShvbGRfcGF0aCwgbmV3X2Rpcm5hbWUpOwogICAgICAgICAgICBpZiAocmVsYXRpdmUuY2hhckF0KDApICE9PSAiLiIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgfQogICAgICAgICAgICByZWxhdGl2ZSA9IFBBVEgucmVsYXRpdmUobmV3X3BhdGgsIG9sZF9kaXJuYW1lKTsKICAgICAgICAgICAgaWYgKHJlbGF0aXZlLmNoYXJBdCgwKSAhPT0gIi4iKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URU1QVFkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIG5ld19ub2RlOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgbmV3X25vZGUgPSBGUy5sb29rdXBOb2RlKG5ld19kaXIsIG5ld19uYW1lKQogICAgICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICBpZiAob2xkX25vZGUgPT09IG5ld19ub2RlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgaXNkaXIgPSBGUy5pc0RpcihvbGRfbm9kZS5tb2RlKTsKICAgICAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShvbGRfZGlyLCBvbGRfbmFtZSwgaXNkaXIpOwogICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXJyID0gbmV3X25vZGUgPyBGUy5tYXlEZWxldGUobmV3X2RpciwgbmV3X25hbWUsIGlzZGlyKSA6IEZTLm1heUNyZWF0ZShuZXdfZGlyLCBuZXdfbmFtZSk7CiAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycikKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIW9sZF9kaXIubm9kZV9vcHMucmVuYW1lKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KG9sZF9ub2RlKSB8fCBuZXdfbm9kZSAmJiBGUy5pc01vdW50cG9pbnQobmV3X25vZGUpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQlVTWSkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAobmV3X2RpciAhPT0gb2xkX2RpcikgewogICAgICAgICAgICAgICAgZXJyID0gRlMubm9kZVBlcm1pc3Npb25zKG9sZF9kaXIsICJ3Iik7CiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBpZiAoRlMudHJhY2tpbmdEZWxlZ2F0ZVsid2lsbE1vdmVQYXRoIl0pIHsKICAgICAgICAgICAgICAgICAgICBGUy50cmFja2luZ0RlbGVnYXRlWyJ3aWxsTW92ZVBhdGgiXShvbGRfcGF0aCwgbmV3X3BhdGgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWyd3aWxsTW92ZVBhdGgnXSgnIiArIG9sZF9wYXRoICsgIicsICciICsgbmV3X3BhdGggKyAiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiICsgZS5tZXNzYWdlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEZTLmhhc2hSZW1vdmVOb2RlKG9sZF9ub2RlKTsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIG9sZF9kaXIubm9kZV9vcHMucmVuYW1lKG9sZF9ub2RlLCBuZXdfZGlyLCBuZXdfbmFtZSkKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgdGhyb3cgZQogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgRlMuaGFzaEFkZE5vZGUob2xkX25vZGUpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmIChGUy50cmFja2luZ0RlbGVnYXRlWyJvbk1vdmVQYXRoIl0pIEZTLnRyYWNraW5nRGVsZWdhdGVbIm9uTW92ZVBhdGgiXShvbGRfcGF0aCwgbmV3X3BhdGgpCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWydvbk1vdmVQYXRoJ10oJyIgKyBvbGRfcGF0aCArICInLCAnIiArIG5ld19wYXRoICsgIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIiArIGUubWVzc2FnZSkKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIHJtZGlyOiAoZnVuY3Rpb24ocGF0aCkgewogICAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7CiAgICAgICAgICAgICAgICBwYXJlbnQ6IHRydWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKICAgICAgICAgICAgdmFyIG5hbWUgPSBQQVRILmJhc2VuYW1lKHBhdGgpOwogICAgICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUocGFyZW50LCBuYW1lKTsKICAgICAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5hbWUsIHRydWUpOwogICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMucm1kaXIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQobm9kZSkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBpZiAoRlMudHJhY2tpbmdEZWxlZ2F0ZVsid2lsbERlbGV0ZVBhdGgiXSkgewogICAgICAgICAgICAgICAgICAgIEZTLnRyYWNraW5nRGVsZWdhdGVbIndpbGxEZWxldGVQYXRoIl0ocGF0aCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ3dpbGxEZWxldGVQYXRoJ10oJyIgKyBwYXRoICsgIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIiArIGUubWVzc2FnZSkKICAgICAgICAgICAgfQogICAgICAgICAgICBwYXJlbnQubm9kZV9vcHMucm1kaXIocGFyZW50LCBuYW1lKTsKICAgICAgICAgICAgRlMuZGVzdHJveU5vZGUobm9kZSk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBpZiAoRlMudHJhY2tpbmdEZWxlZ2F0ZVsib25EZWxldGVQYXRoIl0pIEZTLnRyYWNraW5nRGVsZWdhdGVbIm9uRGVsZXRlUGF0aCJdKHBhdGgpCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWydvbkRlbGV0ZVBhdGgnXSgnIiArIHBhdGggKyAiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiICsgZS5tZXNzYWdlKQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgcmVhZGRpcjogKGZ1bmN0aW9uKHBhdGgpIHsKICAgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgewogICAgICAgICAgICAgICAgZm9sbG93OiB0cnVlCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgbm9kZSA9IGxvb2t1cC5ub2RlOwogICAgICAgICAgICBpZiAoIW5vZGUubm9kZV9vcHMucmVhZGRpcikgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVERJUikKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbm9kZS5ub2RlX29wcy5yZWFkZGlyKG5vZGUpCiAgICAgICAgfSksCiAgICAgICAgdW5saW5rOiAoZnVuY3Rpb24ocGF0aCkgewogICAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7CiAgICAgICAgICAgICAgICBwYXJlbnQ6IHRydWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKICAgICAgICAgICAgdmFyIG5hbWUgPSBQQVRILmJhc2VuYW1lKHBhdGgpOwogICAgICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUocGFyZW50LCBuYW1lKTsKICAgICAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5hbWUsIGZhbHNlKTsKICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyZW50Lm5vZGVfb3BzLnVubGluaykgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKEZTLmlzTW91bnRwb2ludChub2RlKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmIChGUy50cmFja2luZ0RlbGVnYXRlWyJ3aWxsRGVsZXRlUGF0aCJdKSB7CiAgICAgICAgICAgICAgICAgICAgRlMudHJhY2tpbmdEZWxlZ2F0ZVsid2lsbERlbGV0ZVBhdGgiXShwYXRoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiRlMudHJhY2tpbmdEZWxlZ2F0ZVsnd2lsbERlbGV0ZVBhdGgnXSgnIiArIHBhdGggKyAiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiICsgZS5tZXNzYWdlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHBhcmVudC5ub2RlX29wcy51bmxpbmsocGFyZW50LCBuYW1lKTsKICAgICAgICAgICAgRlMuZGVzdHJveU5vZGUobm9kZSk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBpZiAoRlMudHJhY2tpbmdEZWxlZ2F0ZVsib25EZWxldGVQYXRoIl0pIEZTLnRyYWNraW5nRGVsZWdhdGVbIm9uRGVsZXRlUGF0aCJdKHBhdGgpCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWydvbkRlbGV0ZVBhdGgnXSgnIiArIHBhdGggKyAiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiICsgZS5tZXNzYWdlKQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgcmVhZGxpbms6IChmdW5jdGlvbihwYXRoKSB7CiAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgpOwogICAgICAgICAgICB2YXIgbGluayA9IGxvb2t1cC5ub2RlOwogICAgICAgICAgICBpZiAoIWxpbmspIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWxpbmsubm9kZV9vcHMucmVhZGxpbmspIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gUEFUSC5yZXNvbHZlKEZTLmdldFBhdGgobGluay5wYXJlbnQpLCBsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKGxpbmspKQogICAgICAgIH0pLAogICAgICAgIHN0YXQ6IChmdW5jdGlvbihwYXRoLCBkb250Rm9sbG93KSB7CiAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsKICAgICAgICAgICAgICAgIGZvbGxvdzogIWRvbnRGb2xsb3cKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBub2RlID0gbG9va3VwLm5vZGU7CiAgICAgICAgICAgIGlmICghbm9kZSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5nZXRhdHRyKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbm9kZS5ub2RlX29wcy5nZXRhdHRyKG5vZGUpCiAgICAgICAgfSksCiAgICAgICAgbHN0YXQ6IChmdW5jdGlvbihwYXRoKSB7CiAgICAgICAgICAgIHJldHVybiBGUy5zdGF0KHBhdGgsIHRydWUpCiAgICAgICAgfSksCiAgICAgICAgY2htb2Q6IChmdW5jdGlvbihwYXRoLCBtb2RlLCBkb250Rm9sbG93KSB7CiAgICAgICAgICAgIHZhciBub2RlOwogICAgICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7CiAgICAgICAgICAgICAgICAgICAgZm9sbG93OiAhZG9udEZvbGxvdwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGUKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG5vZGUgPSBwYXRoCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKQogICAgICAgICAgICB9CiAgICAgICAgICAgIG5vZGUubm9kZV9vcHMuc2V0YXR0cihub2RlLCB7CiAgICAgICAgICAgICAgICBtb2RlOiBtb2RlICYgNDA5NSB8IG5vZGUubW9kZSAmIH40MDk1LAogICAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSksCiAgICAgICAgbGNobW9kOiAoZnVuY3Rpb24ocGF0aCwgbW9kZSkgewogICAgICAgICAgICBGUy5jaG1vZChwYXRoLCBtb2RlLCB0cnVlKQogICAgICAgIH0pLAogICAgICAgIGZjaG1vZDogKGZ1bmN0aW9uKGZkLCBtb2RlKSB7CiAgICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwogICAgICAgICAgICBpZiAoIXN0cmVhbSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRlMuY2htb2Qoc3RyZWFtLm5vZGUsIG1vZGUpCiAgICAgICAgfSksCiAgICAgICAgY2hvd246IChmdW5jdGlvbihwYXRoLCB1aWQsIGdpZCwgZG9udEZvbGxvdykgewogICAgICAgICAgICB2YXIgbm9kZTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAic3RyaW5nIikgewogICAgICAgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgewogICAgICAgICAgICAgICAgICAgIGZvbGxvdzogIWRvbnRGb2xsb3cKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBub2RlID0gcGF0aAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSkKICAgICAgICAgICAgfQogICAgICAgICAgICBub2RlLm5vZGVfb3BzLnNldGF0dHIobm9kZSwgewogICAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSksCiAgICAgICAgbGNob3duOiAoZnVuY3Rpb24ocGF0aCwgdWlkLCBnaWQpIHsKICAgICAgICAgICAgRlMuY2hvd24ocGF0aCwgdWlkLCBnaWQsIHRydWUpCiAgICAgICAgfSksCiAgICAgICAgZmNob3duOiAoZnVuY3Rpb24oZmQsIHVpZCwgZ2lkKSB7CiAgICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwogICAgICAgICAgICBpZiAoIXN0cmVhbSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRlMuY2hvd24oc3RyZWFtLm5vZGUsIHVpZCwgZ2lkKQogICAgICAgIH0pLAogICAgICAgIHRydW5jYXRlOiAoZnVuY3Rpb24ocGF0aCwgbGVuKSB7CiAgICAgICAgICAgIGlmIChsZW4gPCAwKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIG5vZGU7CiAgICAgICAgICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsKICAgICAgICAgICAgICAgICAgICBmb2xsb3c6IHRydWUKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBub2RlID0gcGF0aAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoRlMuaXNEaXIobm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElSKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghRlMuaXNGaWxlKG5vZGUubW9kZSkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgZXJyID0gRlMubm9kZVBlcm1pc3Npb25zKG5vZGUsICJ3Iik7CiAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycikKICAgICAgICAgICAgfQogICAgICAgICAgICBub2RlLm5vZGVfb3BzLnNldGF0dHIobm9kZSwgewogICAgICAgICAgICAgICAgc2l6ZTogbGVuLAogICAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSksCiAgICAgICAgZnRydW5jYXRlOiAoZnVuY3Rpb24oZmQsIGxlbikgewogICAgICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZkKTsKICAgICAgICAgICAgaWYgKCFzdHJlYW0pIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMjA5NzE1NSkgPT09IDApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgfQogICAgICAgICAgICBGUy50cnVuY2F0ZShzdHJlYW0ubm9kZSwgbGVuKQogICAgICAgIH0pLAogICAgICAgIHV0aW1lOiAoZnVuY3Rpb24ocGF0aCwgYXRpbWUsIG10aW1lKSB7CiAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsKICAgICAgICAgICAgICAgIGZvbGxvdzogdHJ1ZQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsKICAgICAgICAgICAgbm9kZS5ub2RlX29wcy5zZXRhdHRyKG5vZGUsIHsKICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogTWF0aC5tYXgoYXRpbWUsIG10aW1lKQogICAgICAgICAgICB9KQogICAgICAgIH0pLAogICAgICAgIG9wZW46IChmdW5jdGlvbihwYXRoLCBmbGFncywgbW9kZSwgZmRfc3RhcnQsIGZkX2VuZCkgewogICAgICAgICAgICBpZiAocGF0aCA9PT0gIiIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCkKICAgICAgICAgICAgfQogICAgICAgICAgICBmbGFncyA9IHR5cGVvZiBmbGFncyA9PT0gInN0cmluZyIgPyBGUy5tb2RlU3RyaW5nVG9GbGFncyhmbGFncykgOiBmbGFnczsKICAgICAgICAgICAgbW9kZSA9IHR5cGVvZiBtb2RlID09PSAidW5kZWZpbmVkIiA/IDQzOCA6IG1vZGU7CiAgICAgICAgICAgIGlmIChmbGFncyAmIDY0KSB7CiAgICAgICAgICAgICAgICBtb2RlID0gbW9kZSAmIDQwOTUgfCAzMjc2OAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbW9kZSA9IDAKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgbm9kZTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgbm9kZSA9IHBhdGgKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6ZShwYXRoKTsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgewogICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3c6ICEoZmxhZ3MgJiAxMzEwNzIpCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBjcmVhdGVkID0gZmFsc2U7CiAgICAgICAgICAgIGlmIChmbGFncyAmIDY0KSB7CiAgICAgICAgICAgICAgICBpZiAobm9kZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChmbGFncyAmIDEyOCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FRVhJU1QpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBub2RlID0gRlMubWtub2QocGF0aCwgbW9kZSwgMCk7CiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZCA9IHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIW5vZGUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgZmxhZ3MgJj0gfjUxMgogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChmbGFncyAmIDY1NTM2ICYmICFGUy5pc0Rpcihub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URElSKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghY3JlYXRlZCkgewogICAgICAgICAgICAgICAgdmFyIGVyciA9IEZTLm1heU9wZW4obm9kZSwgZmxhZ3MpOwogICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZmxhZ3MgJiA1MTIpIHsKICAgICAgICAgICAgICAgIEZTLnRydW5jYXRlKG5vZGUsIDApCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmxhZ3MgJj0gfigxMjggfCA1MTIpOwogICAgICAgICAgICB2YXIgc3RyZWFtID0gRlMuY3JlYXRlU3RyZWFtKHsKICAgICAgICAgICAgICAgIG5vZGU6IG5vZGUsCiAgICAgICAgICAgICAgICBwYXRoOiBGUy5nZXRQYXRoKG5vZGUpLAogICAgICAgICAgICAgICAgZmxhZ3M6IGZsYWdzLAogICAgICAgICAgICAgICAgc2Vla2FibGU6IHRydWUsCiAgICAgICAgICAgICAgICBwb3NpdGlvbjogMCwKICAgICAgICAgICAgICAgIHN0cmVhbV9vcHM6IG5vZGUuc3RyZWFtX29wcywKICAgICAgICAgICAgICAgIHVuZ290dGVuOiBbXSwKICAgICAgICAgICAgICAgIGVycm9yOiBmYWxzZQogICAgICAgICAgICB9LCBmZF9zdGFydCwgZmRfZW5kKTsKICAgICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4pIHsKICAgICAgICAgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChNb2R1bGVbImxvZ1JlYWRGaWxlcyJdICYmICEoZmxhZ3MgJiAxKSkgewogICAgICAgICAgICAgICAgaWYgKCFGUy5yZWFkRmlsZXMpIEZTLnJlYWRGaWxlcyA9IHt9OwogICAgICAgICAgICAgICAgaWYgKCEocGF0aCBpbiBGUy5yZWFkRmlsZXMpKSB7CiAgICAgICAgICAgICAgICAgICAgRlMucmVhZEZpbGVzW3BhdGhdID0gMTsKICAgICAgICAgICAgICAgICAgICBNb2R1bGVbInByaW50RXJyIl0oInJlYWQgZmlsZTogIiArIHBhdGgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmIChGUy50cmFja2luZ0RlbGVnYXRlWyJvbk9wZW5GaWxlIl0pIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdHJhY2tpbmdGbGFncyA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYgKChmbGFncyAmIDIwOTcxNTUpICE9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNraW5nRmxhZ3MgfD0gRlMudHJhY2tpbmcub3BlbkZsYWdzLlJFQUQKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKChmbGFncyAmIDIwOTcxNTUpICE9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNraW5nRmxhZ3MgfD0gRlMudHJhY2tpbmcub3BlbkZsYWdzLldSSVRFCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEZTLnRyYWNraW5nRGVsZWdhdGVbIm9uT3BlbkZpbGUiXShwYXRoLCB0cmFja2luZ0ZsYWdzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiRlMudHJhY2tpbmdEZWxlZ2F0ZVsnb25PcGVuRmlsZSddKCciICsgcGF0aCArICInLCBmbGFncykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiICsgZS5tZXNzYWdlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzdHJlYW0KICAgICAgICB9KSwKICAgICAgICBjbG9zZTogKGZ1bmN0aW9uKHN0cmVhbSkgewogICAgICAgICAgICBpZiAoRlMuaXNDbG9zZWQoc3RyZWFtKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHN0cmVhbS5nZXRkZW50cykgc3RyZWFtLmdldGRlbnRzID0gbnVsbDsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5jbG9zZSkgewogICAgICAgICAgICAgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLmNsb3NlKHN0cmVhbSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgdGhyb3cgZQogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgRlMuY2xvc2VTdHJlYW0oc3RyZWFtLmZkKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHN0cmVhbS5mZCA9IG51bGwKICAgICAgICB9KSwKICAgICAgICBpc0Nsb3NlZDogKGZ1bmN0aW9uKHN0cmVhbSkgewogICAgICAgICAgICByZXR1cm4gc3RyZWFtLmZkID09PSBudWxsCiAgICAgICAgfSksCiAgICAgICAgbGxzZWVrOiAoZnVuY3Rpb24oc3RyZWFtLCBvZmZzZXQsIHdoZW5jZSkgewogICAgICAgICAgICBpZiAoRlMuaXNDbG9zZWQoc3RyZWFtKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFzdHJlYW0uc2Vla2FibGUgfHwgIXN0cmVhbS5zdHJlYW1fb3BzLmxsc2VlaykgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHN0cmVhbS5wb3NpdGlvbiA9IHN0cmVhbS5zdHJlYW1fb3BzLmxsc2VlayhzdHJlYW0sIG9mZnNldCwgd2hlbmNlKTsKICAgICAgICAgICAgc3RyZWFtLnVuZ290dGVuID0gW107CiAgICAgICAgICAgIHJldHVybiBzdHJlYW0ucG9zaXRpb24KICAgICAgICB9KSwKICAgICAgICByZWFkOiAoZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewogICAgICAgICAgICBpZiAobGVuZ3RoIDwgMCB8fCBwb3NpdGlvbiA8IDApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoRlMuaXNDbG9zZWQoc3RyZWFtKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAyMDk3MTU1KSA9PT0gMSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5yZWFkKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHNlZWtpbmcgPSB0eXBlb2YgcG9zaXRpb24gIT09ICJ1bmRlZmluZWQiOwogICAgICAgICAgICBpZiAoIXNlZWtpbmcpIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gc3RyZWFtLnBvc2l0aW9uCiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmVhbS5zZWVrYWJsZSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVNQSVBFKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBieXRlc1JlYWQgPSBzdHJlYW0uc3RyZWFtX29wcy5yZWFkKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pOwogICAgICAgICAgICBpZiAoIXNlZWtpbmcpIHN0cmVhbS5wb3NpdGlvbiArPSBieXRlc1JlYWQ7CiAgICAgICAgICAgIHJldHVybiBieXRlc1JlYWQKICAgICAgICB9KSwKICAgICAgICB3cml0ZTogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIGNhbk93bikgewogICAgICAgICAgICBpZiAobGVuZ3RoIDwgMCB8fCBwb3NpdGlvbiA8IDApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoRlMuaXNDbG9zZWQoc3RyZWFtKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAyMDk3MTU1KSA9PT0gMCkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKEZTLmlzRGlyKHN0cmVhbS5ub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy53cml0ZSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzdHJlYW0uZmxhZ3MgJiAxMDI0KSB7CiAgICAgICAgICAgICAgICBGUy5sbHNlZWsoc3RyZWFtLCAwLCAyKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBzZWVraW5nID0gdHlwZW9mIHBvc2l0aW9uICE9PSAidW5kZWZpbmVkIjsKICAgICAgICAgICAgaWYgKCFzZWVraW5nKSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVhbS5wb3NpdGlvbgogICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJlYW0uc2Vla2FibGUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVTUElQRSkKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgYnl0ZXNXcml0dGVuID0gc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgY2FuT3duKTsKICAgICAgICAgICAgaWYgKCFzZWVraW5nKSBzdHJlYW0ucG9zaXRpb24gKz0gYnl0ZXNXcml0dGVuOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKHN0cmVhbS5wYXRoICYmIEZTLnRyYWNraW5nRGVsZWdhdGVbIm9uV3JpdGVUb0ZpbGUiXSkgRlMudHJhY2tpbmdEZWxlZ2F0ZVsib25Xcml0ZVRvRmlsZSJdKHN0cmVhbS5wYXRoKQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiRlMudHJhY2tpbmdEZWxlZ2F0ZVsnb25Xcml0ZVRvRmlsZSddKCciICsgcGF0aCArICInKSB0aHJldyBhbiBleGNlcHRpb246ICIgKyBlLm1lc3NhZ2UpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGJ5dGVzV3JpdHRlbgogICAgICAgIH0pLAogICAgICAgIGFsbG9jYXRlOiAoZnVuY3Rpb24oc3RyZWFtLCBvZmZzZXQsIGxlbmd0aCkgewogICAgICAgICAgICBpZiAoRlMuaXNDbG9zZWQoc3RyZWFtKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgbGVuZ3RoIDw9IDApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDIwOTcxNTUpID09PSAwKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERikKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIUZTLmlzRmlsZShzdHJlYW0ubm9kZS5tb2RlKSAmJiAhRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVikKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRlKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FT1BOT1RTVVBQKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLmFsbG9jYXRlKHN0cmVhbSwgb2Zmc2V0LCBsZW5ndGgpCiAgICAgICAgfSksCiAgICAgICAgbW1hcDogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIHByb3QsIGZsYWdzKSB7CiAgICAgICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMjA5NzE1NSkgPT09IDEpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBQ0NFUykKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLm1tYXApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVikKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gc3RyZWFtLnN0cmVhbV9vcHMubW1hcChzdHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uLCBwcm90LCBmbGFncykKICAgICAgICB9KSwKICAgICAgICBtc3luYzogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgbW1hcEZsYWdzKSB7CiAgICAgICAgICAgIGlmICghc3RyZWFtIHx8ICFzdHJlYW0uc3RyZWFtX29wcy5tc3luYykgewogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gc3RyZWFtLnN0cmVhbV9vcHMubXN5bmMoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBtbWFwRmxhZ3MpCiAgICAgICAgfSksCiAgICAgICAgbXVubWFwOiAoZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfSksCiAgICAgICAgaW9jdGw6IChmdW5jdGlvbihzdHJlYW0sIGNtZCwgYXJnKSB7CiAgICAgICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMuaW9jdGwpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RUWSkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gc3RyZWFtLnN0cmVhbV9vcHMuaW9jdGwoc3RyZWFtLCBjbWQsIGFyZykKICAgICAgICB9KSwKICAgICAgICByZWFkRmlsZTogKGZ1bmN0aW9uKHBhdGgsIG9wdHMpIHsKICAgICAgICAgICAgb3B0cyA9IG9wdHMgfHwge307CiAgICAgICAgICAgIG9wdHMuZmxhZ3MgPSBvcHRzLmZsYWdzIHx8ICJyIjsKICAgICAgICAgICAgb3B0cy5lbmNvZGluZyA9IG9wdHMuZW5jb2RpbmcgfHwgImJpbmFyeSI7CiAgICAgICAgICAgIGlmIChvcHRzLmVuY29kaW5nICE9PSAidXRmOCIgJiYgb3B0cy5lbmNvZGluZyAhPT0gImJpbmFyeSIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBlbmNvZGluZyB0eXBlICInICsgb3B0cy5lbmNvZGluZyArICciJykKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgcmV0OwogICAgICAgICAgICB2YXIgc3RyZWFtID0gRlMub3BlbihwYXRoLCBvcHRzLmZsYWdzKTsKICAgICAgICAgICAgdmFyIHN0YXQgPSBGUy5zdGF0KHBhdGgpOwogICAgICAgICAgICB2YXIgbGVuZ3RoID0gc3RhdC5zaXplOwogICAgICAgICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTsKICAgICAgICAgICAgRlMucmVhZChzdHJlYW0sIGJ1ZiwgMCwgbGVuZ3RoLCAwKTsKICAgICAgICAgICAgaWYgKG9wdHMuZW5jb2RpbmcgPT09ICJ1dGY4IikgewogICAgICAgICAgICAgICAgcmV0ID0gVVRGOEFycmF5VG9TdHJpbmcoYnVmLCAwKQogICAgICAgICAgICB9IGVsc2UgaWYgKG9wdHMuZW5jb2RpbmcgPT09ICJiaW5hcnkiKSB7CiAgICAgICAgICAgICAgICByZXQgPSBidWYKICAgICAgICAgICAgfQogICAgICAgICAgICBGUy5jbG9zZShzdHJlYW0pOwogICAgICAgICAgICByZXR1cm4gcmV0CiAgICAgICAgfSksCiAgICAgICAgd3JpdGVGaWxlOiAoZnVuY3Rpb24ocGF0aCwgZGF0YSwgb3B0cykgewogICAgICAgICAgICBvcHRzID0gb3B0cyB8fCB7fTsKICAgICAgICAgICAgb3B0cy5mbGFncyA9IG9wdHMuZmxhZ3MgfHwgInciOwogICAgICAgICAgICB2YXIgc3RyZWFtID0gRlMub3BlbihwYXRoLCBvcHRzLmZsYWdzLCBvcHRzLm1vZGUpOwogICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoQnl0ZXNVVEY4KGRhdGEpICsgMSk7CiAgICAgICAgICAgICAgICB2YXIgYWN0dWFsTnVtQnl0ZXMgPSBzdHJpbmdUb1VURjhBcnJheShkYXRhLCBidWYsIDAsIGJ1Zi5sZW5ndGgpOwogICAgICAgICAgICAgICAgRlMud3JpdGUoc3RyZWFtLCBidWYsIDAsIGFjdHVhbE51bUJ5dGVzLCB1bmRlZmluZWQsIG9wdHMuY2FuT3duKQogICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhkYXRhKSkgewogICAgICAgICAgICAgICAgRlMud3JpdGUoc3RyZWFtLCBkYXRhLCAwLCBkYXRhLmJ5dGVMZW5ndGgsIHVuZGVmaW5lZCwgb3B0cy5jYW5Pd24pCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGRhdGEgdHlwZSIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRlMuY2xvc2Uoc3RyZWFtKQogICAgICAgIH0pLAogICAgICAgIGN3ZDogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gRlMuY3VycmVudFBhdGgKICAgICAgICB9KSwKICAgICAgICBjaGRpcjogKGZ1bmN0aW9uKHBhdGgpIHsKICAgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgewogICAgICAgICAgICAgICAgZm9sbG93OiB0cnVlCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpZiAobG9va3VwLm5vZGUgPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0VOVCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIUZTLmlzRGlyKGxvb2t1cC5ub2RlLm1vZGUpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9URElSKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBlcnIgPSBGUy5ub2RlUGVybWlzc2lvbnMobG9va3VwLm5vZGUsICJ4Iik7CiAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycikKICAgICAgICAgICAgfQogICAgICAgICAgICBGUy5jdXJyZW50UGF0aCA9IGxvb2t1cC5wYXRoCiAgICAgICAgfSksCiAgICAgICAgY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIEZTLm1rZGlyKCIvdG1wIik7CiAgICAgICAgICAgIEZTLm1rZGlyKCIvaG9tZSIpOwogICAgICAgICAgICBGUy5ta2RpcigiL2hvbWUvd2ViX3VzZXIiKQogICAgICAgIH0pLAogICAgICAgIGNyZWF0ZURlZmF1bHREZXZpY2VzOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIEZTLm1rZGlyKCIvZGV2Iik7CiAgICAgICAgICAgIEZTLnJlZ2lzdGVyRGV2aWNlKEZTLm1ha2VkZXYoMSwgMyksIHsKICAgICAgICAgICAgICAgIHJlYWQ6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICB3cml0ZTogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIEZTLm1rZGV2KCIvZGV2L251bGwiLCBGUy5tYWtlZGV2KDEsIDMpKTsKICAgICAgICAgICAgVFRZLnJlZ2lzdGVyKEZTLm1ha2VkZXYoNSwgMCksIFRUWS5kZWZhdWx0X3R0eV9vcHMpOwogICAgICAgICAgICBUVFkucmVnaXN0ZXIoRlMubWFrZWRldig2LCAwKSwgVFRZLmRlZmF1bHRfdHR5MV9vcHMpOwogICAgICAgICAgICBGUy5ta2RldigiL2Rldi90dHkiLCBGUy5tYWtlZGV2KDUsIDApKTsKICAgICAgICAgICAgRlMubWtkZXYoIi9kZXYvdHR5MSIsIEZTLm1ha2VkZXYoNiwgMCkpOwogICAgICAgICAgICB2YXIgcmFuZG9tX2RldmljZTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBjcnlwdG8gIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgICAgICB2YXIgcmFuZG9tQnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoMSk7CiAgICAgICAgICAgICAgICByYW5kb21fZGV2aWNlID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMocmFuZG9tQnVmZmVyKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmFuZG9tQnVmZmVyWzBdCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9IGVsc2UgaWYgKEVOVklST05NRU5UX0lTX05PREUpIHsKICAgICAgICAgICAgICAgIHJhbmRvbV9kZXZpY2UgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVpcmUoImNyeXB0byIpWyJyYW5kb21CeXRlcyJdKDEpWzBdCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmFuZG9tX2RldmljZSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIDI1NiB8IDAKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRlMuY3JlYXRlRGV2aWNlKCIvZGV2IiwgInJhbmRvbSIsIHJhbmRvbV9kZXZpY2UpOwogICAgICAgICAgICBGUy5jcmVhdGVEZXZpY2UoIi9kZXYiLCAidXJhbmRvbSIsIHJhbmRvbV9kZXZpY2UpOwogICAgICAgICAgICBGUy5ta2RpcigiL2Rldi9zaG0iKTsKICAgICAgICAgICAgRlMubWtkaXIoIi9kZXYvc2htL3RtcCIpCiAgICAgICAgfSksCiAgICAgICAgY3JlYXRlU3BlY2lhbERpcmVjdG9yaWVzOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIEZTLm1rZGlyKCIvcHJvYyIpOwogICAgICAgICAgICBGUy5ta2RpcigiL3Byb2Mvc2VsZiIpOwogICAgICAgICAgICBGUy5ta2RpcigiL3Byb2Mvc2VsZi9mZCIpOwogICAgICAgICAgICBGUy5tb3VudCh7CiAgICAgICAgICAgICAgICBtb3VudDogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHZhciBub2RlID0gRlMuY3JlYXRlTm9kZSgiL3Byb2Mvc2VsZiIsICJmZCIsIDE2Mzg0IHwgNTExLCA3Myk7CiAgICAgICAgICAgICAgICAgICAgbm9kZS5ub2RlX29wcyA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgbG9va3VwOiAoZnVuY3Rpb24ocGFyZW50LCBuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmQgPSArbmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJlYW0pIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXQgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdW50OiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdW50cG9pbnQ6ICJmYWtlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV9vcHM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGxpbms6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHJlYW0ucGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQucGFyZW50ID0gcmV0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0sIHt9LCAiL3Byb2Mvc2VsZi9mZCIpCiAgICAgICAgfSksCiAgICAgICAgY3JlYXRlU3RhbmRhcmRTdHJlYW1zOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChNb2R1bGVbInN0ZGluIl0pIHsKICAgICAgICAgICAgICAgIEZTLmNyZWF0ZURldmljZSgiL2RldiIsICJzdGRpbiIsIE1vZHVsZVsic3RkaW4iXSkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIEZTLnN5bWxpbmsoIi9kZXYvdHR5IiwgIi9kZXYvc3RkaW4iKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChNb2R1bGVbInN0ZG91dCJdKSB7CiAgICAgICAgICAgICAgICBGUy5jcmVhdGVEZXZpY2UoIi9kZXYiLCAic3Rkb3V0IiwgbnVsbCwgTW9kdWxlWyJzdGRvdXQiXSkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIEZTLnN5bWxpbmsoIi9kZXYvdHR5IiwgIi9kZXYvc3Rkb3V0IikKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoTW9kdWxlWyJzdGRlcnIiXSkgewogICAgICAgICAgICAgICAgRlMuY3JlYXRlRGV2aWNlKCIvZGV2IiwgInN0ZGVyciIsIG51bGwsIE1vZHVsZVsic3RkZXJyIl0pCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBGUy5zeW1saW5rKCIvZGV2L3R0eTEiLCAiL2Rldi9zdGRlcnIiKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBzdGRpbiA9IEZTLm9wZW4oIi9kZXYvc3RkaW4iLCAiciIpOwogICAgICAgICAgICBhc3NlcnQoc3RkaW4uZmQgPT09IDAsICJpbnZhbGlkIGhhbmRsZSBmb3Igc3RkaW4gKCIgKyBzdGRpbi5mZCArICIpIik7CiAgICAgICAgICAgIHZhciBzdGRvdXQgPSBGUy5vcGVuKCIvZGV2L3N0ZG91dCIsICJ3Iik7CiAgICAgICAgICAgIGFzc2VydChzdGRvdXQuZmQgPT09IDEsICJpbnZhbGlkIGhhbmRsZSBmb3Igc3Rkb3V0ICgiICsgc3Rkb3V0LmZkICsgIikiKTsKICAgICAgICAgICAgdmFyIHN0ZGVyciA9IEZTLm9wZW4oIi9kZXYvc3RkZXJyIiwgInciKTsKICAgICAgICAgICAgYXNzZXJ0KHN0ZGVyci5mZCA9PT0gMiwgImludmFsaWQgaGFuZGxlIGZvciBzdGRlcnIgKCIgKyBzdGRlcnIuZmQgKyAiKSIpCiAgICAgICAgfSksCiAgICAgICAgZW5zdXJlRXJybm9FcnJvcjogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoRlMuRXJybm9FcnJvcikgcmV0dXJuOwogICAgICAgICAgICBGUy5FcnJub0Vycm9yID0gZnVuY3Rpb24gRXJybm9FcnJvcihlcnJubywgbm9kZSkgewogICAgICAgICAgICAgICAgdGhpcy5ub2RlID0gbm9kZTsKICAgICAgICAgICAgICAgIHRoaXMuc2V0RXJybm8gPSAoZnVuY3Rpb24oZXJybm8pIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm5vID0gZXJybm87CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIEVSUk5PX0NPREVTKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChFUlJOT19DT0RFU1trZXldID09PSBlcnJubykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2RlID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgdGhpcy5zZXRFcnJubyhlcnJubyk7CiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBFUlJOT19NRVNTQUdFU1tlcnJub107CiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFjaykgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJzdGFjayIsIHsKICAgICAgICAgICAgICAgICAgICB2YWx1ZTogKG5ldyBFcnJvcikuc3RhY2ssCiAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIEZTLkVycm5vRXJyb3IucHJvdG90eXBlID0gbmV3IEVycm9yOwogICAgICAgICAgICBGUy5FcnJub0Vycm9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEZTLkVycm5vRXJyb3I7CiAgICAgICAgICAgIFtFUlJOT19DT0RFUy5FTk9FTlRdLmZvckVhY2goKGZ1bmN0aW9uKGNvZGUpIHsKICAgICAgICAgICAgICAgIEZTLmdlbmVyaWNFcnJvcnNbY29kZV0gPSBuZXcgRlMuRXJybm9FcnJvcihjb2RlKTsKICAgICAgICAgICAgICAgIEZTLmdlbmVyaWNFcnJvcnNbY29kZV0uc3RhY2sgPSAiPGdlbmVyaWMgZXJyb3IsIG5vIHN0YWNrPiIKICAgICAgICAgICAgfSkpCiAgICAgICAgfSksCiAgICAgICAgc3RhdGljSW5pdDogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBGUy5lbnN1cmVFcnJub0Vycm9yKCk7CiAgICAgICAgICAgIEZTLm5hbWVUYWJsZSA9IG5ldyBBcnJheSg0MDk2KTsKICAgICAgICAgICAgRlMubW91bnQoTUVNRlMsIHt9LCAiLyIpOwogICAgICAgICAgICBGUy5jcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXMoKTsKICAgICAgICAgICAgRlMuY3JlYXRlRGVmYXVsdERldmljZXMoKTsKICAgICAgICAgICAgRlMuY3JlYXRlU3BlY2lhbERpcmVjdG9yaWVzKCk7CiAgICAgICAgICAgIEZTLmZpbGVzeXN0ZW1zID0gewogICAgICAgICAgICAgICAgIk1FTUZTIjogTUVNRlMsCiAgICAgICAgICAgICAgICAiSURCRlMiOiBJREJGUywKICAgICAgICAgICAgICAgICJOT0RFRlMiOiBOT0RFRlMsCiAgICAgICAgICAgICAgICAiV09SS0VSRlMiOiBXT1JLRVJGUwogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgaW5pdDogKGZ1bmN0aW9uKGlucHV0LCBvdXRwdXQsIGVycm9yKSB7CiAgICAgICAgICAgIGFzc2VydCghRlMuaW5pdC5pbml0aWFsaXplZCwgIkZTLmluaXQgd2FzIHByZXZpb3VzbHkgY2FsbGVkLiBJZiB5b3Ugd2FudCB0byBpbml0aWFsaXplIGxhdGVyIHdpdGggY3VzdG9tIHBhcmFtZXRlcnMsIHJlbW92ZSBhbnkgZWFybGllciBjYWxscyAobm90ZSB0aGF0IG9uZSBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgY29kZSkiKTsKICAgICAgICAgICAgRlMuaW5pdC5pbml0aWFsaXplZCA9IHRydWU7CiAgICAgICAgICAgIEZTLmVuc3VyZUVycm5vRXJyb3IoKTsKICAgICAgICAgICAgTW9kdWxlWyJzdGRpbiJdID0gaW5wdXQgfHwgTW9kdWxlWyJzdGRpbiJdOwogICAgICAgICAgICBNb2R1bGVbInN0ZG91dCJdID0gb3V0cHV0IHx8IE1vZHVsZVsic3Rkb3V0Il07CiAgICAgICAgICAgIE1vZHVsZVsic3RkZXJyIl0gPSBlcnJvciB8fCBNb2R1bGVbInN0ZGVyciJdOwogICAgICAgICAgICBGUy5jcmVhdGVTdGFuZGFyZFN0cmVhbXMoKQogICAgICAgIH0pLAogICAgICAgIHF1aXQ6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgRlMuaW5pdC5pbml0aWFsaXplZCA9IGZhbHNlOwogICAgICAgICAgICB2YXIgZmZsdXNoID0gTW9kdWxlWyJfZmZsdXNoIl07CiAgICAgICAgICAgIGlmIChmZmx1c2gpIGZmbHVzaCgwKTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBGUy5zdHJlYW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgc3RyZWFtID0gRlMuc3RyZWFtc1tpXTsKICAgICAgICAgICAgICAgIGlmICghc3RyZWFtKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEZTLmNsb3NlKHN0cmVhbSkKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIGdldE1vZGU6IChmdW5jdGlvbihjYW5SZWFkLCBjYW5Xcml0ZSkgewogICAgICAgICAgICB2YXIgbW9kZSA9IDA7CiAgICAgICAgICAgIGlmIChjYW5SZWFkKSBtb2RlIHw9IDI5MiB8IDczOwogICAgICAgICAgICBpZiAoY2FuV3JpdGUpIG1vZGUgfD0gMTQ2OwogICAgICAgICAgICByZXR1cm4gbW9kZQogICAgICAgIH0pLAogICAgICAgIGpvaW5QYXRoOiAoZnVuY3Rpb24ocGFydHMsIGZvcmNlUmVsYXRpdmUpIHsKICAgICAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4uYXBwbHkobnVsbCwgcGFydHMpOwogICAgICAgICAgICBpZiAoZm9yY2VSZWxhdGl2ZSAmJiBwYXRoWzBdID09ICIvIikgcGF0aCA9IHBhdGguc3Vic3RyKDEpOwogICAgICAgICAgICByZXR1cm4gcGF0aAogICAgICAgIH0pLAogICAgICAgIGFic29sdXRlUGF0aDogKGZ1bmN0aW9uKHJlbGF0aXZlLCBiYXNlKSB7CiAgICAgICAgICAgIHJldHVybiBQQVRILnJlc29sdmUoYmFzZSwgcmVsYXRpdmUpCiAgICAgICAgfSksCiAgICAgICAgc3RhbmRhcmRpemVQYXRoOiAoZnVuY3Rpb24ocGF0aCkgewogICAgICAgICAgICByZXR1cm4gUEFUSC5ub3JtYWxpemUocGF0aCkKICAgICAgICB9KSwKICAgICAgICBmaW5kT2JqZWN0OiAoZnVuY3Rpb24ocGF0aCwgZG9udFJlc29sdmVMYXN0TGluaykgewogICAgICAgICAgICB2YXIgcmV0ID0gRlMuYW5hbHl6ZVBhdGgocGF0aCwgZG9udFJlc29sdmVMYXN0TGluayk7CiAgICAgICAgICAgIGlmIChyZXQuZXhpc3RzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gcmV0Lm9iamVjdAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX19fc2V0RXJyTm8ocmV0LmVycm9yKTsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBhbmFseXplUGF0aDogKGZ1bmN0aW9uKHBhdGgsIGRvbnRSZXNvbHZlTGFzdExpbmspIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsKICAgICAgICAgICAgICAgICAgICBmb2xsb3c6ICFkb250UmVzb2x2ZUxhc3RMaW5rCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHBhdGggPSBsb29rdXAucGF0aAogICAgICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICB2YXIgcmV0ID0gewogICAgICAgICAgICAgICAgaXNSb290OiBmYWxzZSwKICAgICAgICAgICAgICAgIGV4aXN0czogZmFsc2UsCiAgICAgICAgICAgICAgICBlcnJvcjogMCwKICAgICAgICAgICAgICAgIG5hbWU6IG51bGwsCiAgICAgICAgICAgICAgICBwYXRoOiBudWxsLAogICAgICAgICAgICAgICAgb2JqZWN0OiBudWxsLAogICAgICAgICAgICAgICAgcGFyZW50RXhpc3RzOiBmYWxzZSwKICAgICAgICAgICAgICAgIHBhcmVudFBhdGg6IG51bGwsCiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3Q6IG51bGwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsKICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IHRydWUKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgcmV0LnBhcmVudEV4aXN0cyA9IHRydWU7CiAgICAgICAgICAgICAgICByZXQucGFyZW50UGF0aCA9IGxvb2t1cC5wYXRoOwogICAgICAgICAgICAgICAgcmV0LnBhcmVudE9iamVjdCA9IGxvb2t1cC5ub2RlOwogICAgICAgICAgICAgICAgcmV0Lm5hbWUgPSBQQVRILmJhc2VuYW1lKHBhdGgpOwogICAgICAgICAgICAgICAgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7CiAgICAgICAgICAgICAgICAgICAgZm9sbG93OiAhZG9udFJlc29sdmVMYXN0TGluawogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICByZXQuZXhpc3RzID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHJldC5wYXRoID0gbG9va3VwLnBhdGg7CiAgICAgICAgICAgICAgICByZXQub2JqZWN0ID0gbG9va3VwLm5vZGU7CiAgICAgICAgICAgICAgICByZXQubmFtZSA9IGxvb2t1cC5ub2RlLm5hbWU7CiAgICAgICAgICAgICAgICByZXQuaXNSb290ID0gbG9va3VwLnBhdGggPT09ICIvIgogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICByZXQuZXJyb3IgPSBlLmVycm5vCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgIH0pLAogICAgICAgIGNyZWF0ZUZvbGRlcjogKGZ1bmN0aW9uKHBhcmVudCwgbmFtZSwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKICAgICAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4yKHR5cGVvZiBwYXJlbnQgPT09ICJzdHJpbmciID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKICAgICAgICAgICAgdmFyIG1vZGUgPSBGUy5nZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsKICAgICAgICAgICAgcmV0dXJuIEZTLm1rZGlyKHBhdGgsIG1vZGUpCiAgICAgICAgfSksCiAgICAgICAgY3JlYXRlUGF0aDogKGZ1bmN0aW9uKHBhcmVudCwgcGF0aCwgY2FuUmVhZCwgY2FuV3JpdGUpIHsKICAgICAgICAgICAgcGFyZW50ID0gdHlwZW9mIHBhcmVudCA9PT0gInN0cmluZyIgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCk7CiAgICAgICAgICAgIHZhciBwYXJ0cyA9IHBhdGguc3BsaXQoIi8iKS5yZXZlcnNlKCk7CiAgICAgICAgICAgIHdoaWxlIChwYXJ0cy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHZhciBwYXJ0ID0gcGFydHMucG9wKCk7CiAgICAgICAgICAgICAgICBpZiAoIXBhcnQpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBQQVRILmpvaW4yKHBhcmVudCwgcGFydCk7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIEZTLm1rZGlyKGN1cnJlbnQpCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICAgICAgcGFyZW50ID0gY3VycmVudAogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBjdXJyZW50CiAgICAgICAgfSksCiAgICAgICAgY3JlYXRlRmlsZTogKGZ1bmN0aW9uKHBhcmVudCwgbmFtZSwgcHJvcGVydGllcywgY2FuUmVhZCwgY2FuV3JpdGUpIHsKICAgICAgICAgICAgdmFyIHBhdGggPSBQQVRILmpvaW4yKHR5cGVvZiBwYXJlbnQgPT09ICJzdHJpbmciID8gcGFyZW50IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKICAgICAgICAgICAgdmFyIG1vZGUgPSBGUy5nZXRNb2RlKGNhblJlYWQsIGNhbldyaXRlKTsKICAgICAgICAgICAgcmV0dXJuIEZTLmNyZWF0ZShwYXRoLCBtb2RlKQogICAgICAgIH0pLAogICAgICAgIGNyZWF0ZURhdGFGaWxlOiAoZnVuY3Rpb24ocGFyZW50LCBuYW1lLCBkYXRhLCBjYW5SZWFkLCBjYW5Xcml0ZSwgY2FuT3duKSB7CiAgICAgICAgICAgIHZhciBwYXRoID0gbmFtZSA/IFBBVEguam9pbjIodHlwZW9mIHBhcmVudCA9PT0gInN0cmluZyIgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpIDogcGFyZW50OwogICAgICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoY2FuUmVhZCwgY2FuV3JpdGUpOwogICAgICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZShwYXRoLCBtb2RlKTsKICAgICAgICAgICAgaWYgKGRhdGEpIHsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgYXJyID0gbmV3IEFycmF5KGRhdGEubGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gZGF0YS5sZW5ndGg7IGkgPCBsZW47ICsraSkgYXJyW2ldID0gZGF0YS5jaGFyQ29kZUF0KGkpOwogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBhcnIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEZTLmNobW9kKG5vZGUsIG1vZGUgfCAxNDYpOwogICAgICAgICAgICAgICAgdmFyIHN0cmVhbSA9IEZTLm9wZW4obm9kZSwgInciKTsKICAgICAgICAgICAgICAgIEZTLndyaXRlKHN0cmVhbSwgZGF0YSwgMCwgZGF0YS5sZW5ndGgsIDAsIGNhbk93bik7CiAgICAgICAgICAgICAgICBGUy5jbG9zZShzdHJlYW0pOwogICAgICAgICAgICAgICAgRlMuY2htb2Qobm9kZSwgbW9kZSkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbm9kZQogICAgICAgIH0pLAogICAgICAgIGNyZWF0ZURldmljZTogKGZ1bmN0aW9uKHBhcmVudCwgbmFtZSwgaW5wdXQsIG91dHB1dCkgewogICAgICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9pbjIodHlwZW9mIHBhcmVudCA9PT0gInN0cmluZyIgPyBwYXJlbnQgOiBGUy5nZXRQYXRoKHBhcmVudCksIG5hbWUpOwogICAgICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoISFpbnB1dCwgISFvdXRwdXQpOwogICAgICAgICAgICBpZiAoIUZTLmNyZWF0ZURldmljZS5tYWpvcikgRlMuY3JlYXRlRGV2aWNlLm1ham9yID0gNjQ7CiAgICAgICAgICAgIHZhciBkZXYgPSBGUy5tYWtlZGV2KEZTLmNyZWF0ZURldmljZS5tYWpvcisrLCAwKTsKICAgICAgICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoZGV2LCB7CiAgICAgICAgICAgICAgICBvcGVuOiAoZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgICAgICAgICAgICAgICAgc3RyZWFtLnNlZWthYmxlID0gZmFsc2UKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgY2xvc2U6IChmdW5jdGlvbihzdHJlYW0pIHsKICAgICAgICAgICAgICAgICAgICBpZiAob3V0cHV0ICYmIG91dHB1dC5idWZmZXIgJiYgb3V0cHV0LmJ1ZmZlci5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KDEwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgcmVhZDogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0OwogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQoKQogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkICYmIGJ5dGVzUmVhZCA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFHQUlOKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQpIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBieXRlc1JlYWQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIGldID0gcmVzdWx0CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChieXRlc1JlYWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLm5vZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIHdyaXRlOiAoZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3MpIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQoYnVmZmVyW29mZnNldCArIGldKQogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJldHVybiBpCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgcmV0dXJuIEZTLm1rZGV2KHBhdGgsIG1vZGUsIGRldikKICAgICAgICB9KSwKICAgICAgICBjcmVhdGVMaW5rOiAoZnVuY3Rpb24ocGFyZW50LCBuYW1lLCB0YXJnZXQsIGNhblJlYWQsIGNhbldyaXRlKSB7CiAgICAgICAgICAgIHZhciBwYXRoID0gUEFUSC5qb2luMih0eXBlb2YgcGFyZW50ID09PSAic3RyaW5nIiA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7CiAgICAgICAgICAgIHJldHVybiBGUy5zeW1saW5rKHRhcmdldCwgcGF0aCkKICAgICAgICB9KSwKICAgICAgICBmb3JjZUxvYWRGaWxlOiAoZnVuY3Rpb24ob2JqKSB7CiAgICAgICAgICAgIGlmIChvYmouaXNEZXZpY2UgfHwgb2JqLmlzRm9sZGVyIHx8IG9iai5saW5rIHx8IG9iai5jb250ZW50cykgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGF6eSBsb2FkaW5nIHNob3VsZCBoYXZlIGJlZW4gcGVyZm9ybWVkIChjb250ZW50cyBzZXQpIGluIGNyZWF0ZUxhenlGaWxlLCBidXQgaXQgd2FzIG5vdC4gTGF6eSBsb2FkaW5nIG9ubHkgd29ya3MgaW4gd2ViIHdvcmtlcnMuIFVzZSAtLWVtYmVkLWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4gZW1jYyBvbiB0aGUgbWFpbiB0aHJlYWQuIikKICAgICAgICAgICAgfSBlbHNlIGlmIChNb2R1bGVbInJlYWQiXSkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBvYmouY29udGVudHMgPSBpbnRBcnJheUZyb21TdHJpbmcoTW9kdWxlWyJyZWFkIl0ob2JqLnVybCksIHRydWUpOwogICAgICAgICAgICAgICAgICAgIG9iai51c2VkQnl0ZXMgPSBvYmouY29udGVudHMubGVuZ3RoCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBsb2FkIHdpdGhvdXQgcmVhZCgpIG9yIFhNTEh0dHBSZXF1ZXN0LiIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FSU8pOwogICAgICAgICAgICByZXR1cm4gc3VjY2VzcwogICAgICAgIH0pLAogICAgICAgIGNyZWF0ZUxhenlGaWxlOiAoZnVuY3Rpb24ocGFyZW50LCBuYW1lLCB1cmwsIGNhblJlYWQsIGNhbldyaXRlKSB7CiAgICAgICAgICAgIGZ1bmN0aW9uIExhenlVaW50OEFycmF5KCkgewogICAgICAgICAgICAgICAgdGhpcy5sZW5ndGhLbm93biA9IGZhbHNlOwogICAgICAgICAgICAgICAgdGhpcy5jaHVua3MgPSBbXQogICAgICAgICAgICB9CiAgICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiBMYXp5VWludDhBcnJheV9nZXQoaWR4KSB7CiAgICAgICAgICAgICAgICBpZiAoaWR4ID4gdGhpcy5sZW5ndGggLSAxIHx8IGlkeCA8IDApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgY2h1bmtPZmZzZXQgPSBpZHggJSB0aGlzLmNodW5rU2l6ZTsKICAgICAgICAgICAgICAgIHZhciBjaHVua051bSA9IGlkeCAvIHRoaXMuY2h1bmtTaXplIHwgMDsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldHRlcihjaHVua051bSlbY2h1bmtPZmZzZXRdCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5zZXREYXRhR2V0dGVyID0gZnVuY3Rpb24gTGF6eVVpbnQ4QXJyYXlfc2V0RGF0YUdldHRlcihnZXR0ZXIpIHsKICAgICAgICAgICAgICAgIHRoaXMuZ2V0dGVyID0gZ2V0dGVyCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5jYWNoZUxlbmd0aCA9IGZ1bmN0aW9uIExhenlVaW50OEFycmF5X2NhY2hlTGVuZ3RoKCkgewogICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKICAgICAgICAgICAgICAgIHhoci5vcGVuKCJIRUFEIiwgdXJsLCBmYWxzZSk7CiAgICAgICAgICAgICAgICB4aHIuc2VuZChudWxsKTsKICAgICAgICAgICAgICAgIGlmICghKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhyLnN0YXR1cyA9PT0gMzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1cmwgKyAiLiBTdGF0dXM6ICIgKyB4aHIuc3RhdHVzKTsKICAgICAgICAgICAgICAgIHZhciBkYXRhbGVuZ3RoID0gTnVtYmVyKHhoci5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1sZW5ndGgiKSk7CiAgICAgICAgICAgICAgICB2YXIgaGVhZGVyOwogICAgICAgICAgICAgICAgdmFyIGhhc0J5dGVTZXJ2aW5nID0gKGhlYWRlciA9IHhoci5nZXRSZXNwb25zZUhlYWRlcigiQWNjZXB0LVJhbmdlcyIpKSAmJiBoZWFkZXIgPT09ICJieXRlcyI7CiAgICAgICAgICAgICAgICB2YXIgdXNlc0d6aXAgPSAoaGVhZGVyID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LUVuY29kaW5nIikpICYmIGhlYWRlciA9PT0gImd6aXAiOwogICAgICAgICAgICAgICAgdmFyIGNodW5rU2l6ZSA9IDEwMjQgKiAxMDI0OwogICAgICAgICAgICAgICAgaWYgKCFoYXNCeXRlU2VydmluZykgY2h1bmtTaXplID0gZGF0YWxlbmd0aDsKICAgICAgICAgICAgICAgIHZhciBkb1hIUiA9IChmdW5jdGlvbihmcm9tLCB0bykgewogICAgICAgICAgICAgICAgICAgIGlmIChmcm9tID4gdG8pIHRocm93IG5ldyBFcnJvcigiaW52YWxpZCByYW5nZSAoIiArIGZyb20gKyAiLCAiICsgdG8gKyAiKSBvciBubyBieXRlcyByZXF1ZXN0ZWQhIik7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRvID4gZGF0YWxlbmd0aCAtIDEpIHRocm93IG5ldyBFcnJvcigib25seSAiICsgZGF0YWxlbmd0aCArICIgYnl0ZXMgYXZhaWxhYmxlISBwcm9ncmFtbWVyIGVycm9yISIpOwogICAgICAgICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CiAgICAgICAgICAgICAgICAgICAgeGhyLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhbGVuZ3RoICE9PSBjaHVua1NpemUpIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJSYW5nZSIsICJieXRlcz0iICsgZnJvbSArICItIiArIHRvKTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIFVpbnQ4QXJyYXkgIT0gInVuZGVmaW5lZCIpIHhoci5yZXNwb25zZVR5cGUgPSAiYXJyYXlidWZmZXIiOwogICAgICAgICAgICAgICAgICAgIGlmICh4aHIub3ZlcnJpZGVNaW1lVHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgICB4aHIub3ZlcnJpZGVNaW1lVHlwZSgidGV4dC9wbGFpbjsgY2hhcnNldD14LXVzZXItZGVmaW5lZCIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwogICAgICAgICAgICAgICAgICAgIGlmICghKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhyLnN0YXR1cyA9PT0gMzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1cmwgKyAiLiBTdGF0dXM6ICIgKyB4aHIuc3RhdHVzKTsKICAgICAgICAgICAgICAgICAgICBpZiAoeGhyLnJlc3BvbnNlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHhoci5yZXNwb25zZSB8fCBbXSkKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50QXJyYXlGcm9tU3RyaW5nKHhoci5yZXNwb25zZVRleHQgfHwgIiIsIHRydWUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB2YXIgbGF6eUFycmF5ID0gdGhpczsKICAgICAgICAgICAgICAgIGxhenlBcnJheS5zZXREYXRhR2V0dGVyKChmdW5jdGlvbihjaHVua051bSkgewogICAgICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IGNodW5rTnVtICogY2h1bmtTaXplOwogICAgICAgICAgICAgICAgICAgIHZhciBlbmQgPSAoY2h1bmtOdW0gKyAxKSAqIGNodW5rU2l6ZSAtIDE7CiAgICAgICAgICAgICAgICAgICAgZW5kID0gTWF0aC5taW4oZW5kLCBkYXRhbGVuZ3RoIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsYXp5QXJyYXkuY2h1bmtzW2NodW5rTnVtXSA9PT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGF6eUFycmF5LmNodW5rc1tjaHVua051bV0gPSBkb1hIUihzdGFydCwgZW5kKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dID09PSAidW5kZWZpbmVkIikgdGhyb3cgbmV3IEVycm9yKCJkb1hIUiBmYWlsZWQhIik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dCiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICBpZiAodXNlc0d6aXAgfHwgIWRhdGFsZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBjaHVua1NpemUgPSBkYXRhbGVuZ3RoID0gMTsKICAgICAgICAgICAgICAgICAgICBkYXRhbGVuZ3RoID0gdGhpcy5nZXR0ZXIoMCkubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIGNodW5rU2l6ZSA9IGRhdGFsZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkxhenlGaWxlcyBvbiBnemlwIGZvcmNlcyBkb3dubG9hZCBvZiB0aGUgd2hvbGUgZmlsZSB3aGVuIGxlbmd0aCBpcyBhY2Nlc3NlZCIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLl9sZW5ndGggPSBkYXRhbGVuZ3RoOwogICAgICAgICAgICAgICAgdGhpcy5fY2h1bmtTaXplID0gY2h1bmtTaXplOwogICAgICAgICAgICAgICAgdGhpcy5sZW5ndGhLbm93biA9IHRydWUKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgIGlmICghRU5WSVJPTk1FTlRfSVNfV09SS0VSKSB0aHJvdyAiQ2Fubm90IGRvIHN5bmNocm9ub3VzIGJpbmFyeSBYSFJzIG91dHNpZGUgd2Vid29ya2VycyBpbiBtb2Rlcm4gYnJvd3NlcnMuIFVzZSAtLWVtYmVkLWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4gZW1jYyI7CiAgICAgICAgICAgICAgICB2YXIgbGF6eUFycmF5ID0gbmV3IExhenlVaW50OEFycmF5OwogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobGF6eUFycmF5LCB7CiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoOiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGdldDogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmxlbmd0aEtub3duKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxlbmd0aCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBjaHVua1NpemU6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubGVuZ3RoS25vd24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlTGVuZ3RoKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9jaHVua1NpemUKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0gewogICAgICAgICAgICAgICAgICAgIGlzRGV2aWNlOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICBjb250ZW50czogbGF6eUFycmF5CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHsKICAgICAgICAgICAgICAgICAgICBpc0RldmljZTogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZUZpbGUocGFyZW50LCBuYW1lLCBwcm9wZXJ0aWVzLCBjYW5SZWFkLCBjYW5Xcml0ZSk7CiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzLmNvbnRlbnRzKSB7CiAgICAgICAgICAgICAgICBub2RlLmNvbnRlbnRzID0gcHJvcGVydGllcy5jb250ZW50cwogICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnRpZXMudXJsKSB7CiAgICAgICAgICAgICAgICBub2RlLmNvbnRlbnRzID0gbnVsbDsKICAgICAgICAgICAgICAgIG5vZGUudXJsID0gcHJvcGVydGllcy51cmwKICAgICAgICAgICAgfQogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhub2RlLCB7CiAgICAgICAgICAgICAgICB1c2VkQnl0ZXM6IHsKICAgICAgICAgICAgICAgICAgICBnZXQ6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudHMubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBzdHJlYW1fb3BzID0ge307CiAgICAgICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMobm9kZS5zdHJlYW1fb3BzKTsKICAgICAgICAgICAga2V5cy5mb3JFYWNoKChmdW5jdGlvbihrZXkpIHsKICAgICAgICAgICAgICAgIHZhciBmbiA9IG5vZGUuc3RyZWFtX29wc1trZXldOwogICAgICAgICAgICAgICAgc3RyZWFtX29wc1trZXldID0gZnVuY3Rpb24gZm9yY2VMb2FkTGF6eUZpbGUoKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFGUy5mb3JjZUxvYWRGaWxlKG5vZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkpOwogICAgICAgICAgICBzdHJlYW1fb3BzLnJlYWQgPSBmdW5jdGlvbiBzdHJlYW1fb3BzX3JlYWQoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewogICAgICAgICAgICAgICAgaWYgKCFGUy5mb3JjZUxvYWRGaWxlKG5vZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGNvbnRlbnRzID0gc3RyZWFtLm5vZGUuY29udGVudHM7CiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPj0gY29udGVudHMubGVuZ3RoKSByZXR1cm4gMDsKICAgICAgICAgICAgICAgIHZhciBzaXplID0gTWF0aC5taW4oY29udGVudHMubGVuZ3RoIC0gcG9zaXRpb24sIGxlbmd0aCk7CiAgICAgICAgICAgICAgICBhc3NlcnQoc2l6ZSA+PSAwKTsKICAgICAgICAgICAgICAgIGlmIChjb250ZW50cy5zbGljZSkgewogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGNvbnRlbnRzW3Bvc2l0aW9uICsgaV0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGNvbnRlbnRzLmdldChwb3NpdGlvbiArIGkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHNpemUKICAgICAgICAgICAgfTsKICAgICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gc3RyZWFtX29wczsKICAgICAgICAgICAgcmV0dXJuIG5vZGUKICAgICAgICB9KSwKICAgICAgICBjcmVhdGVQcmVsb2FkZWRGaWxlOiAoZnVuY3Rpb24ocGFyZW50LCBuYW1lLCB1cmwsIGNhblJlYWQsIGNhbldyaXRlLCBvbmxvYWQsIG9uZXJyb3IsIGRvbnRDcmVhdGVGaWxlLCBjYW5Pd24sIHByZUZpbmlzaCkgewogICAgICAgICAgICBCcm93c2VyLmluaXQoKTsKICAgICAgICAgICAgdmFyIGZ1bGxuYW1lID0gbmFtZSA/IFBBVEgucmVzb2x2ZShQQVRILmpvaW4yKHBhcmVudCwgbmFtZSkpIDogcGFyZW50OwogICAgICAgICAgICB2YXIgZGVwID0gZ2V0VW5pcXVlUnVuRGVwZW5kZW5jeSgiY3AgIiArIGZ1bGxuYW1lKTsKCiAgICAgICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NEYXRhKGJ5dGVBcnJheSkgewogICAgICAgICAgICAgICAgZnVuY3Rpb24gZmluaXNoKGJ5dGVBcnJheSkgewogICAgICAgICAgICAgICAgICAgIGlmIChwcmVGaW5pc2gpIHByZUZpbmlzaCgpOwogICAgICAgICAgICAgICAgICAgIGlmICghZG9udENyZWF0ZUZpbGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgRlMuY3JlYXRlRGF0YUZpbGUocGFyZW50LCBuYW1lLCBieXRlQXJyYXksIGNhblJlYWQsIGNhbldyaXRlLCBjYW5Pd24pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChvbmxvYWQpIG9ubG9hZCgpOwogICAgICAgICAgICAgICAgICAgIHJlbW92ZVJ1bkRlcGVuZGVuY3koZGVwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGhhbmRsZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIE1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXS5mb3JFYWNoKChmdW5jdGlvbihwbHVnaW4pIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaGFuZGxlZCkgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIGlmIChwbHVnaW5bImNhbkhhbmRsZSJdKGZ1bGxuYW1lKSkgewogICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5bImhhbmRsZSJdKGJ5dGVBcnJheSwgZnVsbG5hbWUsIGZpbmlzaCwgKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9uZXJyb3IpIG9uZXJyb3IoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVJ1bkRlcGVuZGVuY3koZGVwKQogICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVkKSBmaW5pc2goYnl0ZUFycmF5KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGFkZFJ1bkRlcGVuZGVuY3koZGVwKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiB1cmwgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICAgIEJyb3dzZXIuYXN5bmNMb2FkKHVybCwgKGZ1bmN0aW9uKGJ5dGVBcnJheSkgewogICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEYXRhKGJ5dGVBcnJheSkKICAgICAgICAgICAgICAgIH0pLCBvbmVycm9yKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcHJvY2Vzc0RhdGEodXJsKQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgaW5kZXhlZERCOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubXNJbmRleGVkREIKICAgICAgICB9KSwKICAgICAgICBEQl9OQU1FOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiAiRU1fRlNfIiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZQogICAgICAgIH0pLAogICAgICAgIERCX1ZFUlNJT046IDIwLAogICAgICAgIERCX1NUT1JFX05BTUU6ICJGSUxFX0RBVEEiLAogICAgICAgIHNhdmVGaWxlc1RvREI6IChmdW5jdGlvbihwYXRocywgb25sb2FkLCBvbmVycm9yKSB7CiAgICAgICAgICAgIG9ubG9hZCA9IG9ubG9hZCB8fCAoZnVuY3Rpb24oKSB7fSk7CiAgICAgICAgICAgIG9uZXJyb3IgPSBvbmVycm9yIHx8IChmdW5jdGlvbigpIHt9KTsKICAgICAgICAgICAgdmFyIGluZGV4ZWREQiA9IEZTLmluZGV4ZWREQigpOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oRlMuREJfTkFNRSgpLCBGUy5EQl9WRVJTSU9OKQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gb25lcnJvcihlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIG9wZW5SZXF1ZXN0X29udXBncmFkZW5lZWRlZCgpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJjcmVhdGluZyBkYiIpOwogICAgICAgICAgICAgICAgdmFyIGRiID0gb3BlblJlcXVlc3QucmVzdWx0OwogICAgICAgICAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoRlMuREJfU1RPUkVfTkFNRSkKICAgICAgICAgICAgfTsKICAgICAgICAgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gb3BlblJlcXVlc3Rfb25zdWNjZXNzKCkgewogICAgICAgICAgICAgICAgdmFyIGRiID0gb3BlblJlcXVlc3QucmVzdWx0OwogICAgICAgICAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oW0ZTLkRCX1NUT1JFX05BTUVdLCAicmVhZHdyaXRlIik7CiAgICAgICAgICAgICAgICB2YXIgZmlsZXMgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZShGUy5EQl9TVE9SRV9OQU1FKTsKICAgICAgICAgICAgICAgIHZhciBvayA9IDAsCiAgICAgICAgICAgICAgICAgICAgZmFpbCA9IDAsCiAgICAgICAgICAgICAgICAgICAgdG90YWwgPSBwYXRocy5sZW5ndGg7CgogICAgICAgICAgICAgICAgZnVuY3Rpb24gZmluaXNoKCkgewogICAgICAgICAgICAgICAgICAgIGlmIChmYWlsID09IDApIG9ubG9hZCgpOwogICAgICAgICAgICAgICAgICAgIGVsc2Ugb25lcnJvcigpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwYXRocy5mb3JFYWNoKChmdW5jdGlvbihwYXRoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHB1dFJlcXVlc3QgPSBmaWxlcy5wdXQoRlMuYW5hbHl6ZVBhdGgocGF0aCkub2JqZWN0LmNvbnRlbnRzLCBwYXRoKTsKICAgICAgICAgICAgICAgICAgICBwdXRSZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIHB1dFJlcXVlc3Rfb25zdWNjZXNzKCkgewogICAgICAgICAgICAgICAgICAgICAgICBvaysrOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAob2sgKyBmYWlsID09IHRvdGFsKSBmaW5pc2goKQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgcHV0UmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24gcHV0UmVxdWVzdF9vbmVycm9yKCkgewogICAgICAgICAgICAgICAgICAgICAgICBmYWlsKys7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvayArIGZhaWwgPT0gdG90YWwpIGZpbmlzaCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IG9uZXJyb3IKICAgICAgICAgICAgfTsKICAgICAgICAgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IG9uZXJyb3IKICAgICAgICB9KSwKICAgICAgICBsb2FkRmlsZXNGcm9tREI6IChmdW5jdGlvbihwYXRocywgb25sb2FkLCBvbmVycm9yKSB7CiAgICAgICAgICAgIG9ubG9hZCA9IG9ubG9hZCB8fCAoZnVuY3Rpb24oKSB7fSk7CiAgICAgICAgICAgIG9uZXJyb3IgPSBvbmVycm9yIHx8IChmdW5jdGlvbigpIHt9KTsKICAgICAgICAgICAgdmFyIGluZGV4ZWREQiA9IEZTLmluZGV4ZWREQigpOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oRlMuREJfTkFNRSgpLCBGUy5EQl9WRVJTSU9OKQogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gb25lcnJvcihlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IG9uZXJyb3I7CiAgICAgICAgICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIG9wZW5SZXF1ZXN0X29uc3VjY2VzcygpIHsKICAgICAgICAgICAgICAgIHZhciBkYiA9IG9wZW5SZXF1ZXN0LnJlc3VsdDsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oW0ZTLkRCX1NUT1JFX05BTUVdLCAicmVhZG9ubHkiKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIG9uZXJyb3IoZSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZmlsZXMgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZShGUy5EQl9TVE9SRV9OQU1FKTsKICAgICAgICAgICAgICAgIHZhciBvayA9IDAsCiAgICAgICAgICAgICAgICAgICAgZmFpbCA9IDAsCiAgICAgICAgICAgICAgICAgICAgdG90YWwgPSBwYXRocy5sZW5ndGg7CgogICAgICAgICAgICAgICAgZnVuY3Rpb24gZmluaXNoKCkgewogICAgICAgICAgICAgICAgICAgIGlmIChmYWlsID09IDApIG9ubG9hZCgpOwogICAgICAgICAgICAgICAgICAgIGVsc2Ugb25lcnJvcigpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwYXRocy5mb3JFYWNoKChmdW5jdGlvbihwYXRoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGdldFJlcXVlc3QgPSBmaWxlcy5nZXQocGF0aCk7CiAgICAgICAgICAgICAgICAgICAgZ2V0UmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiBnZXRSZXF1ZXN0X29uc3VjY2VzcygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEZTLmFuYWx5emVQYXRoKHBhdGgpLmV4aXN0cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRlMudW5saW5rKHBhdGgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRlMuY3JlYXRlRGF0YUZpbGUoUEFUSC5kaXJuYW1lKHBhdGgpLCBQQVRILmJhc2VuYW1lKHBhdGgpLCBnZXRSZXF1ZXN0LnJlc3VsdCwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIG9rKys7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvayArIGZhaWwgPT0gdG90YWwpIGZpbmlzaCgpCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICBnZXRSZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbiBnZXRSZXF1ZXN0X29uZXJyb3IoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwrKzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9rICsgZmFpbCA9PSB0b3RhbCkgZmluaXNoKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gb25lcnJvcgogICAgICAgICAgICB9OwogICAgICAgICAgICBvcGVuUmVxdWVzdC5vbmVycm9yID0gb25lcnJvcgogICAgICAgIH0pCiAgICB9OwoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3NldF9tYWluX2xvb3BfdGltaW5nKG1vZGUsIHZhbHVlKSB7CiAgICAgICAgQnJvd3Nlci5tYWluTG9vcC50aW1pbmdNb2RlID0gbW9kZTsKICAgICAgICBCcm93c2VyLm1haW5Mb29wLnRpbWluZ1ZhbHVlID0gdmFsdWU7CiAgICAgICAgaWYgKCFCcm93c2VyLm1haW5Mb29wLmZ1bmMpIHsKICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICB9CiAgICAgICAgaWYgKG1vZGUgPT0gMCkgewogICAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNjaGVkdWxlciA9IGZ1bmN0aW9uIEJyb3dzZXJfbWFpbkxvb3Bfc2NoZWR1bGVyX3NldFRpbWVvdXQoKSB7CiAgICAgICAgICAgICAgICB2YXIgdGltZVVudGlsTmV4dFRpY2sgPSBNYXRoLm1heCgwLCBCcm93c2VyLm1haW5Mb29wLnRpY2tTdGFydFRpbWUgKyB2YWx1ZSAtIF9lbXNjcmlwdGVuX2dldF9ub3coKSkgfCAwOwogICAgICAgICAgICAgICAgc2V0VGltZW91dChCcm93c2VyLm1haW5Mb29wLnJ1bm5lciwgdGltZVVudGlsTmV4dFRpY2spCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3AubWV0aG9kID0gInRpbWVvdXQiCiAgICAgICAgfSBlbHNlIGlmIChtb2RlID09IDEpIHsKICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5zY2hlZHVsZXIgPSBmdW5jdGlvbiBCcm93c2VyX21haW5Mb29wX3NjaGVkdWxlcl9yQUYoKSB7CiAgICAgICAgICAgICAgICBCcm93c2VyLnJlcXVlc3RBbmltYXRpb25GcmFtZShCcm93c2VyLm1haW5Mb29wLnJ1bm5lcikKICAgICAgICAgICAgfTsKICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5tZXRob2QgPSAickFGIgogICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PSAyKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2V0SW1tZWRpYXRlID09PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICAgICAgdmFyIHNldEltbWVkaWF0ZXMgPSBbXTsKICAgICAgICAgICAgICAgIHZhciBlbXNjcmlwdGVuTWFpbkxvb3BNZXNzYWdlSWQgPSAic2V0aW1tZWRpYXRlIjsKCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBCcm93c2VyX3NldEltbWVkaWF0ZV9tZXNzYWdlSGFuZGxlcihldmVudCkgewogICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSBlbXNjcmlwdGVuTWFpbkxvb3BNZXNzYWdlSWQgfHwgZXZlbnQuZGF0YS50YXJnZXQgPT09IGVtc2NyaXB0ZW5NYWluTG9vcE1lc3NhZ2VJZCkgewogICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW1tZWRpYXRlcy5zaGlmdCgpKCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgQnJvd3Nlcl9zZXRJbW1lZGlhdGVfbWVzc2FnZUhhbmRsZXIsIHRydWUpOwogICAgICAgICAgICAgICAgc2V0SW1tZWRpYXRlID0gZnVuY3Rpb24gQnJvd3Nlcl9lbXVsYXRlZF9zZXRJbW1lZGlhdGUoZnVuYykgewogICAgICAgICAgICAgICAgICAgIHNldEltbWVkaWF0ZXMucHVzaChmdW5jKTsKICAgICAgICAgICAgICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfV09SS0VSKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChNb2R1bGVbInNldEltbWVkaWF0ZXMiXSA9PT0gdW5kZWZpbmVkKSBNb2R1bGVbInNldEltbWVkaWF0ZXMiXSA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICBNb2R1bGVbInNldEltbWVkaWF0ZXMiXS5wdXNoKGZ1bmMpOwogICAgICAgICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGVtc2NyaXB0ZW5NYWluTG9vcE1lc3NhZ2VJZAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBwb3N0TWVzc2FnZShlbXNjcmlwdGVuTWFpbkxvb3BNZXNzYWdlSWQsICIqIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNjaGVkdWxlciA9IGZ1bmN0aW9uIEJyb3dzZXJfbWFpbkxvb3Bfc2NoZWR1bGVyX3NldEltbWVkaWF0ZSgpIHsKICAgICAgICAgICAgICAgIHNldEltbWVkaWF0ZShCcm93c2VyLm1haW5Mb29wLnJ1bm5lcikKICAgICAgICAgICAgfTsKICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5tZXRob2QgPSAiaW1tZWRpYXRlIgogICAgICAgIH0KICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX2dldF9ub3coKSB7CiAgICAgICAgYWJvcnQoKQogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3NldF9tYWluX2xvb3AoZnVuYywgZnBzLCBzaW11bGF0ZUluZmluaXRlTG9vcCwgYXJnLCBub1NldFRpbWluZykgewogICAgICAgIE1vZHVsZVsibm9FeGl0UnVudGltZSJdID0gdHJ1ZTsKICAgICAgICBhc3NlcnQoIUJyb3dzZXIubWFpbkxvb3AuZnVuYywgImVtc2NyaXB0ZW5fc2V0X21haW5fbG9vcDogdGhlcmUgY2FuIG9ubHkgYmUgb25lIG1haW4gbG9vcCBmdW5jdGlvbiBhdCBvbmNlOiBjYWxsIGVtc2NyaXB0ZW5fY2FuY2VsX21haW5fbG9vcCB0byBjYW5jZWwgdGhlIHByZXZpb3VzIG9uZSBiZWZvcmUgc2V0dGluZyBhIG5ldyBvbmUgd2l0aCBkaWZmZXJlbnQgcGFyYW1ldGVycy4iKTsKICAgICAgICBCcm93c2VyLm1haW5Mb29wLmZ1bmMgPSBmdW5jOwogICAgICAgIEJyb3dzZXIubWFpbkxvb3AuYXJnID0gYXJnOwogICAgICAgIHZhciBicm93c2VySXRlcmF0aW9uRnVuYzsKICAgICAgICBpZiAodHlwZW9mIGFyZyAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgYnJvd3Nlckl0ZXJhdGlvbkZ1bmMgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmkiXShmdW5jLCBhcmcpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnJvd3Nlckl0ZXJhdGlvbkZ1bmMgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdiJdKGZ1bmMpCiAgICAgICAgICAgIH0pCiAgICAgICAgfQogICAgICAgIHZhciB0aGlzTWFpbkxvb3BJZCA9IEJyb3dzZXIubWFpbkxvb3AuY3VycmVudGx5UnVubmluZ01haW5sb29wOwogICAgICAgIEJyb3dzZXIubWFpbkxvb3AucnVubmVyID0gZnVuY3Rpb24gQnJvd3Nlcl9tYWluTG9vcF9ydW5uZXIoKSB7CiAgICAgICAgICAgIGlmIChBQk9SVCkgcmV0dXJuOwogICAgICAgICAgICBpZiAoQnJvd3Nlci5tYWluTG9vcC5xdWV1ZS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBEYXRlLm5vdygpOwogICAgICAgICAgICAgICAgdmFyIGJsb2NrZXIgPSBCcm93c2VyLm1haW5Mb29wLnF1ZXVlLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBibG9ja2VyLmZ1bmMoYmxvY2tlci5hcmcpOwogICAgICAgICAgICAgICAgaWYgKEJyb3dzZXIubWFpbkxvb3AucmVtYWluaW5nQmxvY2tlcnMpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcmVtYWluaW5nID0gQnJvd3Nlci5tYWluTG9vcC5yZW1haW5pbmdCbG9ja2VyczsKICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IHJlbWFpbmluZyAlIDEgPT0gMCA/IHJlbWFpbmluZyAtIDEgOiBNYXRoLmZsb29yKHJlbWFpbmluZyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrZXIuY291bnRlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnJlbWFpbmluZ0Jsb2NrZXJzID0gbmV4dAogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBuZXh0ICsgLjU7CiAgICAgICAgICAgICAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3AucmVtYWluaW5nQmxvY2tlcnMgPSAoOCAqIHJlbWFpbmluZyArIG5leHQpIC8gOQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdtYWluIGxvb3AgYmxvY2tlciAiJyArIGJsb2NrZXIubmFtZSArICciIHRvb2sgJyArIChEYXRlLm5vdygpIC0gc3RhcnQpICsgIiBtcyIpOwogICAgICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC51cGRhdGVTdGF0dXMoKTsKICAgICAgICAgICAgICAgIGlmICh0aGlzTWFpbkxvb3BJZCA8IEJyb3dzZXIubWFpbkxvb3AuY3VycmVudGx5UnVubmluZ01haW5sb29wKSByZXR1cm47CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KEJyb3dzZXIubWFpbkxvb3AucnVubmVyLCAwKTsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0aGlzTWFpbkxvb3BJZCA8IEJyb3dzZXIubWFpbkxvb3AuY3VycmVudGx5UnVubmluZ01haW5sb29wKSByZXR1cm47CiAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3AuY3VycmVudEZyYW1lTnVtYmVyID0gQnJvd3Nlci5tYWluTG9vcC5jdXJyZW50RnJhbWVOdW1iZXIgKyAxIHwgMDsKICAgICAgICAgICAgaWYgKEJyb3dzZXIubWFpbkxvb3AudGltaW5nTW9kZSA9PSAxICYmIEJyb3dzZXIubWFpbkxvb3AudGltaW5nVmFsdWUgPiAxICYmIEJyb3dzZXIubWFpbkxvb3AuY3VycmVudEZyYW1lTnVtYmVyICUgQnJvd3Nlci5tYWluTG9vcC50aW1pbmdWYWx1ZSAhPSAwKSB7CiAgICAgICAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNjaGVkdWxlcigpOwogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0gZWxzZSBpZiAoQnJvd3Nlci5tYWluTG9vcC50aW1pbmdNb2RlID09IDApIHsKICAgICAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3AudGlja1N0YXJ0VGltZSA9IF9lbXNjcmlwdGVuX2dldF9ub3coKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChCcm93c2VyLm1haW5Mb29wLm1ldGhvZCA9PT0gInRpbWVvdXQiICYmIE1vZHVsZS5jdHgpIHsKICAgICAgICAgICAgICAgIE1vZHVsZS5wcmludEVycigiTG9va3MgbGlrZSB5b3UgYXJlIHJlbmRlcmluZyB3aXRob3V0IHVzaW5nIHJlcXVlc3RBbmltYXRpb25GcmFtZSBmb3IgdGhlIG1haW4gbG9vcC4gWW91IHNob3VsZCB1c2UgMCBmb3IgdGhlIGZyYW1lIHJhdGUgaW4gZW1zY3JpcHRlbl9zZXRfbWFpbl9sb29wIGluIG9yZGVyIHRvIHVzZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUsIGFzIHRoYXQgY2FuIGdyZWF0bHkgaW1wcm92ZSB5b3VyIGZyYW1lIHJhdGVzISIpOwogICAgICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5tZXRob2QgPSAiIgogICAgICAgICAgICB9CiAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3AucnVuSXRlcihicm93c2VySXRlcmF0aW9uRnVuYyk7CiAgICAgICAgICAgIGlmICh0aGlzTWFpbkxvb3BJZCA8IEJyb3dzZXIubWFpbkxvb3AuY3VycmVudGx5UnVubmluZ01haW5sb29wKSByZXR1cm47CiAgICAgICAgICAgIGlmICh0eXBlb2YgU0RMID09PSAib2JqZWN0IiAmJiBTREwuYXVkaW8gJiYgU0RMLmF1ZGlvLnF1ZXVlTmV3QXVkaW9EYXRhKSBTREwuYXVkaW8ucXVldWVOZXdBdWRpb0RhdGEoKTsKICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5zY2hlZHVsZXIoKQogICAgICAgIH07CiAgICAgICAgaWYgKCFub1NldFRpbWluZykgewogICAgICAgICAgICBpZiAoZnBzICYmIGZwcyA+IDApIF9lbXNjcmlwdGVuX3NldF9tYWluX2xvb3BfdGltaW5nKDAsIDFlMyAvIGZwcyk7CiAgICAgICAgICAgIGVsc2UgX2Vtc2NyaXB0ZW5fc2V0X21haW5fbG9vcF90aW1pbmcoMSwgMSk7CiAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3Auc2NoZWR1bGVyKCkKICAgICAgICB9CiAgICAgICAgaWYgKHNpbXVsYXRlSW5maW5pdGVMb29wKSB7CiAgICAgICAgICAgIHRocm93ICJTaW11bGF0ZUluZmluaXRlTG9vcCIKICAgICAgICB9CiAgICB9CiAgICB2YXIgQnJvd3NlciA9IHsKICAgICAgICBtYWluTG9vcDogewogICAgICAgICAgICBzY2hlZHVsZXI6IG51bGwsCiAgICAgICAgICAgIG1ldGhvZDogIiIsCiAgICAgICAgICAgIGN1cnJlbnRseVJ1bm5pbmdNYWlubG9vcDogMCwKICAgICAgICAgICAgZnVuYzogbnVsbCwKICAgICAgICAgICAgYXJnOiAwLAogICAgICAgICAgICB0aW1pbmdNb2RlOiAwLAogICAgICAgICAgICB0aW1pbmdWYWx1ZTogMCwKICAgICAgICAgICAgY3VycmVudEZyYW1lTnVtYmVyOiAwLAogICAgICAgICAgICBxdWV1ZTogW10sCiAgICAgICAgICAgIHBhdXNlOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNjaGVkdWxlciA9IG51bGw7CiAgICAgICAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLmN1cnJlbnRseVJ1bm5pbmdNYWlubG9vcCsrCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICByZXN1bWU6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3AuY3VycmVudGx5UnVubmluZ01haW5sb29wKys7CiAgICAgICAgICAgICAgICB2YXIgdGltaW5nTW9kZSA9IEJyb3dzZXIubWFpbkxvb3AudGltaW5nTW9kZTsKICAgICAgICAgICAgICAgIHZhciB0aW1pbmdWYWx1ZSA9IEJyb3dzZXIubWFpbkxvb3AudGltaW5nVmFsdWU7CiAgICAgICAgICAgICAgICB2YXIgZnVuYyA9IEJyb3dzZXIubWFpbkxvb3AuZnVuYzsKICAgICAgICAgICAgICAgIEJyb3dzZXIubWFpbkxvb3AuZnVuYyA9IG51bGw7CiAgICAgICAgICAgICAgICBfZW1zY3JpcHRlbl9zZXRfbWFpbl9sb29wKGZ1bmMsIDAsIGZhbHNlLCBCcm93c2VyLm1haW5Mb29wLmFyZywgdHJ1ZSk7CiAgICAgICAgICAgICAgICBfZW1zY3JpcHRlbl9zZXRfbWFpbl9sb29wX3RpbWluZyh0aW1pbmdNb2RlLCB0aW1pbmdWYWx1ZSk7CiAgICAgICAgICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNjaGVkdWxlcigpCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICB1cGRhdGVTdGF0dXM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGlmIChNb2R1bGVbInNldFN0YXR1cyJdKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBNb2R1bGVbInN0YXR1c01lc3NhZ2UiXSB8fCAiUGxlYXNlIHdhaXQuLi4iOwogICAgICAgICAgICAgICAgICAgIHZhciByZW1haW5pbmcgPSBCcm93c2VyLm1haW5Mb29wLnJlbWFpbmluZ0Jsb2NrZXJzOwogICAgICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IEJyb3dzZXIubWFpbkxvb3AuZXhwZWN0ZWRCbG9ja2VyczsKICAgICAgICAgICAgICAgICAgICBpZiAocmVtYWluaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZW1haW5pbmcgPCBleHBlY3RlZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kdWxlWyJzZXRTdGF0dXMiXShtZXNzYWdlICsgIiAoIiArIChleHBlY3RlZCAtIHJlbWFpbmluZykgKyAiLyIgKyBleHBlY3RlZCArICIpIikKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZVsic2V0U3RhdHVzIl0obWVzc2FnZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZVsic2V0U3RhdHVzIl0oIiIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcnVuSXRlcjogKGZ1bmN0aW9uKGZ1bmMpIHsKICAgICAgICAgICAgICAgIGlmIChBQk9SVCkgcmV0dXJuOwogICAgICAgICAgICAgICAgaWYgKE1vZHVsZVsicHJlTWFpbkxvb3AiXSkgewogICAgICAgICAgICAgICAgICAgIHZhciBwcmVSZXQgPSBNb2R1bGVbInByZU1haW5Mb29wIl0oKTsKICAgICAgICAgICAgICAgICAgICBpZiAocHJlUmV0ID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGZ1bmMoKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXhpdFN0YXR1cykgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZSAmJiB0eXBlb2YgZSA9PT0gIm9iamVjdCIgJiYgZS5zdGFjaykgTW9kdWxlLnByaW50RXJyKCJleGNlcHRpb24gdGhyb3duOiAiICsgW2UsIGUuc3RhY2tdKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChNb2R1bGVbInBvc3RNYWluTG9vcCJdKSBNb2R1bGVbInBvc3RNYWluTG9vcCJdKCkKICAgICAgICAgICAgfSkKICAgICAgICB9LAogICAgICAgIGlzRnVsbHNjcmVlbjogZmFsc2UsCiAgICAgICAgcG9pbnRlckxvY2s6IGZhbHNlLAogICAgICAgIG1vZHVsZUNvbnRleHRDcmVhdGVkQ2FsbGJhY2tzOiBbXSwKICAgICAgICB3b3JrZXJzOiBbXSwKICAgICAgICBpbml0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghTW9kdWxlWyJwcmVsb2FkUGx1Z2lucyJdKSBNb2R1bGVbInByZWxvYWRQbHVnaW5zIl0gPSBbXTsKICAgICAgICAgICAgaWYgKEJyb3dzZXIuaW5pdHRlZCkgcmV0dXJuOwogICAgICAgICAgICBCcm93c2VyLmluaXR0ZWQgPSB0cnVlOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgbmV3IEJsb2I7CiAgICAgICAgICAgICAgICBCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvciA9IHRydWUKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJ3YXJuaW5nOiBubyBibG9iIGNvbnN0cnVjdG9yLCBjYW5ub3QgY3JlYXRlIGJsb2JzIHdpdGggbWltZXR5cGVzIikKICAgICAgICAgICAgfQogICAgICAgICAgICBCcm93c2VyLkJsb2JCdWlsZGVyID0gdHlwZW9mIE1vekJsb2JCdWlsZGVyICE9ICJ1bmRlZmluZWQiID8gTW96QmxvYkJ1aWxkZXIgOiB0eXBlb2YgV2ViS2l0QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBXZWJLaXRCbG9iQnVpbGRlciA6ICFCcm93c2VyLmhhc0Jsb2JDb25zdHJ1Y3RvciA/IGNvbnNvbGUubG9nKCJ3YXJuaW5nOiBubyBCbG9iQnVpbGRlciIpIDogbnVsbDsKICAgICAgICAgICAgQnJvd3Nlci5VUkxPYmplY3QgPSB0eXBlb2Ygd2luZG93ICE9ICJ1bmRlZmluZWQiID8gd2luZG93LlVSTCA/IHdpbmRvdy5VUkwgOiB3aW5kb3cud2Via2l0VVJMIDogdW5kZWZpbmVkOwogICAgICAgICAgICBpZiAoIU1vZHVsZS5ub0ltYWdlRGVjb2RpbmcgJiYgdHlwZW9mIEJyb3dzZXIuVVJMT2JqZWN0ID09PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIndhcm5pbmc6IEJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBjcmVhdGluZyBvYmplY3QgVVJMcy4gQnVpbHQtaW4gYnJvd3NlciBpbWFnZSBkZWNvZGluZyB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIik7CiAgICAgICAgICAgICAgICBNb2R1bGUubm9JbWFnZURlY29kaW5nID0gdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpbWFnZVBsdWdpbiA9IHt9OwogICAgICAgICAgICBpbWFnZVBsdWdpblsiY2FuSGFuZGxlIl0gPSBmdW5jdGlvbiBpbWFnZVBsdWdpbl9jYW5IYW5kbGUobmFtZSkgewogICAgICAgICAgICAgICAgcmV0dXJuICFNb2R1bGUubm9JbWFnZURlY29kaW5nICYmIC9cLihqcGd8anBlZ3xwbmd8Ym1wKSQvaS50ZXN0KG5hbWUpCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGltYWdlUGx1Z2luWyJoYW5kbGUiXSA9IGZ1bmN0aW9uIGltYWdlUGx1Z2luX2hhbmRsZShieXRlQXJyYXksIG5hbWUsIG9ubG9hZCwgb25lcnJvcikgewogICAgICAgICAgICAgICAgdmFyIGIgPSBudWxsOwogICAgICAgICAgICAgICAgaWYgKEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yKSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoYi5zaXplICE9PSBieXRlQXJyYXkubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gbmV3IEJsb2IoWyhuZXcgVWludDhBcnJheShieXRlQXJyYXkpKS5idWZmZXJdLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQnJvd3Nlci5nZXRNaW1ldHlwZShuYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgd2Fybk9uY2UoIkJsb2IgY29uc3RydWN0b3IgcHJlc2VudCBidXQgZmFpbHM6ICIgKyBlICsgIjsgZmFsbGluZyBiYWNrIHRvIGJsb2IgYnVpbGRlciIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGJiID0gbmV3IEJyb3dzZXIuQmxvYkJ1aWxkZXI7CiAgICAgICAgICAgICAgICAgICAgYmIuYXBwZW5kKChuZXcgVWludDhBcnJheShieXRlQXJyYXkpKS5idWZmZXIpOwogICAgICAgICAgICAgICAgICAgIGIgPSBiYi5nZXRCbG9iKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciB1cmwgPSBCcm93c2VyLlVSTE9iamVjdC5jcmVhdGVPYmplY3RVUkwoYik7CiAgICAgICAgICAgICAgICB2YXIgaW1nID0gbmV3IEltYWdlOwogICAgICAgICAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uIGltZ19vbmxvYWQoKSB7CiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KGltZy5jb21wbGV0ZSwgIkltYWdlICIgKyBuYW1lICsgIiBjb3VsZCBub3QgYmUgZGVjb2RlZCIpOwogICAgICAgICAgICAgICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGg7CiAgICAgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGltZy5oZWlnaHQ7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwogICAgICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKICAgICAgICAgICAgICAgICAgICBNb2R1bGVbInByZWxvYWRlZEltYWdlcyJdW25hbWVdID0gY2FudmFzOwogICAgICAgICAgICAgICAgICAgIEJyb3dzZXIuVVJMT2JqZWN0LnJldm9rZU9iamVjdFVSTCh1cmwpOwogICAgICAgICAgICAgICAgICAgIGlmIChvbmxvYWQpIG9ubG9hZChieXRlQXJyYXkpCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgaW1nLm9uZXJyb3IgPSBmdW5jdGlvbiBpbWdfb25lcnJvcihldmVudCkgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJJbWFnZSAiICsgdXJsICsgIiBjb3VsZCBub3QgYmUgZGVjb2RlZCIpOwogICAgICAgICAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCkKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICBpbWcuc3JjID0gdXJsCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIE1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXS5wdXNoKGltYWdlUGx1Z2luKTsKICAgICAgICAgICAgdmFyIGF1ZGlvUGx1Z2luID0ge307CiAgICAgICAgICAgIGF1ZGlvUGx1Z2luWyJjYW5IYW5kbGUiXSA9IGZ1bmN0aW9uIGF1ZGlvUGx1Z2luX2NhbkhhbmRsZShuYW1lKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gIU1vZHVsZS5ub0F1ZGlvRGVjb2RpbmcgJiYgbmFtZS5zdWJzdHIoLTQpIGluIHsKICAgICAgICAgICAgICAgICAgICAiLm9nZyI6IDEsCiAgICAgICAgICAgICAgICAgICAgIi53YXYiOiAxLAogICAgICAgICAgICAgICAgICAgICIubXAzIjogMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBhdWRpb1BsdWdpblsiaGFuZGxlIl0gPSBmdW5jdGlvbiBhdWRpb1BsdWdpbl9oYW5kbGUoYnl0ZUFycmF5LCBuYW1lLCBvbmxvYWQsIG9uZXJyb3IpIHsKICAgICAgICAgICAgICAgIHZhciBkb25lID0gZmFsc2U7CgogICAgICAgICAgICAgICAgZnVuY3Rpb24gZmluaXNoKGF1ZGlvKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvbmUpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdW25hbWVdID0gYXVkaW87CiAgICAgICAgICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5dGVBcnJheSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKCkgewogICAgICAgICAgICAgICAgICAgIGlmIChkb25lKSByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXVtuYW1lXSA9IG5ldyBBdWRpbzsKICAgICAgICAgICAgICAgICAgICBpZiAob25lcnJvcikgb25lcnJvcigpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IpIHsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFpbCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHZhciB1cmwgPSBCcm93c2VyLlVSTE9iamVjdC5jcmVhdGVPYmplY3RVUkwoYik7CiAgICAgICAgICAgICAgICAgICAgdmFyIGF1ZGlvID0gbmV3IEF1ZGlvOwogICAgICAgICAgICAgICAgICAgIGF1ZGlvLmFkZEV2ZW50TGlzdGVuZXIoImNhbnBsYXl0aHJvdWdoIiwgKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2goYXVkaW8pCiAgICAgICAgICAgICAgICAgICAgfSksIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICBhdWRpby5vbmVycm9yID0gZnVuY3Rpb24gYXVkaW9fb25lcnJvcihldmVudCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9uZSkgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygid2FybmluZzogYnJvd3NlciBjb3VsZCBub3QgZnVsbHkgZGVjb2RlIGF1ZGlvICIgKyBuYW1lICsgIiwgdHJ5aW5nIHNsb3dlciBiYXNlNjQgYXBwcm9hY2giKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVuY29kZTY0KGRhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBCQVNFID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFBBRCA9ICI9IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXQgPSAiIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsZWZ0Y2hhciA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGVmdGJpdHMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdGNoYXIgPSBsZWZ0Y2hhciA8PCA4IHwgZGF0YVtpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0Yml0cyArPSA4OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsZWZ0Yml0cyA+PSA2KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyID0gbGVmdGNoYXIgPj4gbGVmdGJpdHMgLSA2ICYgNjM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRiaXRzIC09IDY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCArPSBCQVNFW2N1cnJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnRiaXRzID09IDIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVsobGVmdGNoYXIgJiAzKSA8PCA0XTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgKz0gUEFEICsgUEFECiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxlZnRiaXRzID09IDQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVsobGVmdGNoYXIgJiAxNSkgPDwgMl07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0ICs9IFBBRAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLnNyYyA9ICJkYXRhOmF1ZGlvL3gtIiArIG5hbWUuc3Vic3RyKC0zKSArICI7YmFzZTY0LCIgKyBlbmNvZGU2NChieXRlQXJyYXkpOwogICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2goYXVkaW8pCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICBhdWRpby5zcmMgPSB1cmw7CiAgICAgICAgICAgICAgICAgICAgQnJvd3Nlci5zYWZlU2V0VGltZW91dCgoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaChhdWRpbykKICAgICAgICAgICAgICAgICAgICB9KSwgMWU0KQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFpbCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIE1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXS5wdXNoKGF1ZGlvUGx1Z2luKTsKCiAgICAgICAgICAgIGZ1bmN0aW9uIHBvaW50ZXJMb2NrQ2hhbmdlKCkgewogICAgICAgICAgICAgICAgQnJvd3Nlci5wb2ludGVyTG9jayA9IGRvY3VtZW50WyJwb2ludGVyTG9ja0VsZW1lbnQiXSA9PT0gTW9kdWxlWyJjYW52YXMiXSB8fCBkb2N1bWVudFsibW96UG9pbnRlckxvY2tFbGVtZW50Il0gPT09IE1vZHVsZVsiY2FudmFzIl0gfHwgZG9jdW1lbnRbIndlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCJdID09PSBNb2R1bGVbImNhbnZhcyJdIHx8IGRvY3VtZW50WyJtc1BvaW50ZXJMb2NrRWxlbWVudCJdID09PSBNb2R1bGVbImNhbnZhcyJdCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsiY2FudmFzIl07CiAgICAgICAgICAgIGlmIChjYW52YXMpIHsKICAgICAgICAgICAgICAgIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2sgPSBjYW52YXNbInJlcXVlc3RQb2ludGVyTG9jayJdIHx8IGNhbnZhc1sibW96UmVxdWVzdFBvaW50ZXJMb2NrIl0gfHwgY2FudmFzWyJ3ZWJraXRSZXF1ZXN0UG9pbnRlckxvY2siXSB8fCBjYW52YXNbIm1zUmVxdWVzdFBvaW50ZXJMb2NrIl0gfHwgKGZ1bmN0aW9uKCkge30pOwogICAgICAgICAgICAgICAgY2FudmFzLmV4aXRQb2ludGVyTG9jayA9IGRvY3VtZW50WyJleGl0UG9pbnRlckxvY2siXSB8fCBkb2N1bWVudFsibW96RXhpdFBvaW50ZXJMb2NrIl0gfHwgZG9jdW1lbnRbIndlYmtpdEV4aXRQb2ludGVyTG9jayJdIHx8IGRvY3VtZW50WyJtc0V4aXRQb2ludGVyTG9jayJdIHx8IChmdW5jdGlvbigpIHt9KTsKICAgICAgICAgICAgICAgIGNhbnZhcy5leGl0UG9pbnRlckxvY2sgPSBjYW52YXMuZXhpdFBvaW50ZXJMb2NrLmJpbmQoZG9jdW1lbnQpOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxvY2tjaGFuZ2UiLCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW96cG9pbnRlcmxvY2tjaGFuZ2UiLCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cG9pbnRlcmxvY2tjaGFuZ2UiLCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibXNwb2ludGVybG9ja2NoYW5nZSIsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICBpZiAoTW9kdWxlWyJlbGVtZW50UG9pbnRlckxvY2siXSkgewogICAgICAgICAgICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIChmdW5jdGlvbihldikgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUJyb3dzZXIucG9pbnRlckxvY2sgJiYgTW9kdWxlWyJjYW52YXMiXS5yZXF1ZXN0UG9pbnRlckxvY2spIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZVsiY2FudmFzIl0ucmVxdWVzdFBvaW50ZXJMb2NrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KSwgZmFsc2UpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBjcmVhdGVDb250ZXh0OiAoZnVuY3Rpb24oY2FudmFzLCB1c2VXZWJHTCwgc2V0SW5Nb2R1bGUsIHdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpIHsKICAgICAgICAgICAgaWYgKHVzZVdlYkdMICYmIE1vZHVsZS5jdHggJiYgY2FudmFzID09IE1vZHVsZS5jYW52YXMpIHJldHVybiBNb2R1bGUuY3R4OwogICAgICAgICAgICB2YXIgY3R4OwogICAgICAgICAgICB2YXIgY29udGV4dEhhbmRsZTsKICAgICAgICAgICAgaWYgKHVzZVdlYkdMKSB7CiAgICAgICAgICAgICAgICB2YXIgY29udGV4dEF0dHJpYnV0ZXMgPSB7CiAgICAgICAgICAgICAgICAgICAgYW50aWFsaWFzOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICBhbHBoYTogZmFsc2UKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICBpZiAod2ViR0xDb250ZXh0QXR0cmlidXRlcykgewogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGF0dHJpYnV0ZSBpbiB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRBdHRyaWJ1dGVzW2F0dHJpYnV0ZV0gPSB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzW2F0dHJpYnV0ZV0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb250ZXh0SGFuZGxlID0gR0wuY3JlYXRlQ29udGV4dChjYW52YXMsIGNvbnRleHRBdHRyaWJ1dGVzKTsKICAgICAgICAgICAgICAgIGlmIChjb250ZXh0SGFuZGxlKSB7CiAgICAgICAgICAgICAgICAgICAgY3R4ID0gR0wuZ2V0Q29udGV4dChjb250ZXh0SGFuZGxlKS5HTGN0eAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIikKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWN0eCkgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIGlmIChzZXRJbk1vZHVsZSkgewogICAgICAgICAgICAgICAgaWYgKCF1c2VXZWJHTCkgYXNzZXJ0KHR5cGVvZiBHTGN0eCA9PT0gInVuZGVmaW5lZCIsICJjYW5ub3Qgc2V0IGluIG1vZHVsZSBpZiBHTGN0eCBpcyB1c2VkLCBidXQgd2UgYXJlIGEgbm9uLUdMIGNvbnRleHQgdGhhdCB3b3VsZCByZXBsYWNlIGl0Iik7CiAgICAgICAgICAgICAgICBNb2R1bGUuY3R4ID0gY3R4OwogICAgICAgICAgICAgICAgaWYgKHVzZVdlYkdMKSBHTC5tYWtlQ29udGV4dEN1cnJlbnQoY29udGV4dEhhbmRsZSk7CiAgICAgICAgICAgICAgICBNb2R1bGUudXNlV2ViR0wgPSB1c2VXZWJHTDsKICAgICAgICAgICAgICAgIEJyb3dzZXIubW9kdWxlQ29udGV4dENyZWF0ZWRDYWxsYmFja3MuZm9yRWFjaCgoZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpCiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICBCcm93c2VyLmluaXQoKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBjdHgKICAgICAgICB9KSwKICAgICAgICBkZXN0cm95Q29udGV4dDogKGZ1bmN0aW9uKGNhbnZhcywgdXNlV2ViR0wsIHNldEluTW9kdWxlKSB7fSksCiAgICAgICAgZnVsbHNjcmVlbkhhbmRsZXJzSW5zdGFsbGVkOiBmYWxzZSwKICAgICAgICBsb2NrUG9pbnRlcjogdW5kZWZpbmVkLAogICAgICAgIHJlc2l6ZUNhbnZhczogdW5kZWZpbmVkLAogICAgICAgIHJlcXVlc3RGdWxsc2NyZWVuOiAoZnVuY3Rpb24obG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcywgdnJEZXZpY2UpIHsKICAgICAgICAgICAgQnJvd3Nlci5sb2NrUG9pbnRlciA9IGxvY2tQb2ludGVyOwogICAgICAgICAgICBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IHJlc2l6ZUNhbnZhczsKICAgICAgICAgICAgQnJvd3Nlci52ckRldmljZSA9IHZyRGV2aWNlOwogICAgICAgICAgICBpZiAodHlwZW9mIEJyb3dzZXIubG9ja1BvaW50ZXIgPT09ICJ1bmRlZmluZWQiKSBCcm93c2VyLmxvY2tQb2ludGVyID0gdHJ1ZTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9PT0gInVuZGVmaW5lZCIpIEJyb3dzZXIucmVzaXplQ2FudmFzID0gZmFsc2U7CiAgICAgICAgICAgIGlmICh0eXBlb2YgQnJvd3Nlci52ckRldmljZSA9PT0gInVuZGVmaW5lZCIpIEJyb3dzZXIudnJEZXZpY2UgPSBudWxsOwogICAgICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWyJjYW52YXMiXTsKCiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGxzY3JlZW5DaGFuZ2UoKSB7CiAgICAgICAgICAgICAgICBCcm93c2VyLmlzRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgdmFyIGNhbnZhc0NvbnRhaW5lciA9IGNhbnZhcy5wYXJlbnROb2RlOwogICAgICAgICAgICAgICAgaWYgKChkb2N1bWVudFsiZnVsbHNjcmVlbkVsZW1lbnQiXSB8fCBkb2N1bWVudFsibW96RnVsbFNjcmVlbkVsZW1lbnQiXSB8fCBkb2N1bWVudFsibXNGdWxsc2NyZWVuRWxlbWVudCJdIHx8IGRvY3VtZW50WyJ3ZWJraXRGdWxsc2NyZWVuRWxlbWVudCJdIHx8IGRvY3VtZW50WyJ3ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQiXSkgPT09IGNhbnZhc0NvbnRhaW5lcikgewogICAgICAgICAgICAgICAgICAgIGNhbnZhcy5leGl0RnVsbHNjcmVlbiA9IGRvY3VtZW50WyJleGl0RnVsbHNjcmVlbiJdIHx8IGRvY3VtZW50WyJjYW5jZWxGdWxsU2NyZWVuIl0gfHwgZG9jdW1lbnRbIm1vekNhbmNlbEZ1bGxTY3JlZW4iXSB8fCBkb2N1bWVudFsibXNFeGl0RnVsbHNjcmVlbiJdIHx8IGRvY3VtZW50WyJ3ZWJraXRDYW5jZWxGdWxsU2NyZWVuIl0gfHwgKGZ1bmN0aW9uKCkge30pOwogICAgICAgICAgICAgICAgICAgIGNhbnZhcy5leGl0RnVsbHNjcmVlbiA9IGNhbnZhcy5leGl0RnVsbHNjcmVlbi5iaW5kKGRvY3VtZW50KTsKICAgICAgICAgICAgICAgICAgICBpZiAoQnJvd3Nlci5sb2NrUG9pbnRlcikgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9jaygpOwogICAgICAgICAgICAgICAgICAgIEJyb3dzZXIuaXNGdWxsc2NyZWVuID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBpZiAoQnJvd3Nlci5yZXNpemVDYW52YXMpIEJyb3dzZXIuc2V0RnVsbHNjcmVlbkNhbnZhc1NpemUoKQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjYW52YXNDb250YWluZXIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY2FudmFzLCBjYW52YXNDb250YWluZXIpOwogICAgICAgICAgICAgICAgICAgIGNhbnZhc0NvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNhbnZhc0NvbnRhaW5lcik7CiAgICAgICAgICAgICAgICAgICAgaWYgKEJyb3dzZXIucmVzaXplQ2FudmFzKSBCcm93c2VyLnNldFdpbmRvd2VkQ2FudmFzU2l6ZSgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoTW9kdWxlWyJvbkZ1bGxTY3JlZW4iXSkgTW9kdWxlWyJvbkZ1bGxTY3JlZW4iXShCcm93c2VyLmlzRnVsbHNjcmVlbik7CiAgICAgICAgICAgICAgICBpZiAoTW9kdWxlWyJvbkZ1bGxzY3JlZW4iXSkgTW9kdWxlWyJvbkZ1bGxzY3JlZW4iXShCcm93c2VyLmlzRnVsbHNjcmVlbik7CiAgICAgICAgICAgICAgICBCcm93c2VyLnVwZGF0ZUNhbnZhc0RpbWVuc2lvbnMoY2FudmFzKQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghQnJvd3Nlci5mdWxsc2NyZWVuSGFuZGxlcnNJbnN0YWxsZWQpIHsKICAgICAgICAgICAgICAgIEJyb3dzZXIuZnVsbHNjcmVlbkhhbmRsZXJzSW5zdGFsbGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLCBmdWxsc2NyZWVuQ2hhbmdlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3pmdWxsc2NyZWVuY2hhbmdlIiwgZnVsbHNjcmVlbkNoYW5nZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0ZnVsbHNjcmVlbmNoYW5nZSIsIGZ1bGxzY3JlZW5DaGFuZ2UsIGZhbHNlKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIk1TRnVsbHNjcmVlbkNoYW5nZSIsIGZ1bGxzY3JlZW5DaGFuZ2UsIGZhbHNlKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBjYW52YXNDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgICAgY2FudmFzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNhbnZhc0NvbnRhaW5lciwgY2FudmFzKTsKICAgICAgICAgICAgY2FudmFzQ29udGFpbmVyLmFwcGVuZENoaWxkKGNhbnZhcyk7CiAgICAgICAgICAgIGNhbnZhc0NvbnRhaW5lci5yZXF1ZXN0RnVsbHNjcmVlbiA9IGNhbnZhc0NvbnRhaW5lclsicmVxdWVzdEZ1bGxzY3JlZW4iXSB8fCBjYW52YXNDb250YWluZXJbIm1velJlcXVlc3RGdWxsU2NyZWVuIl0gfHwgY2FudmFzQ29udGFpbmVyWyJtc1JlcXVlc3RGdWxsc2NyZWVuIl0gfHwgKGNhbnZhc0NvbnRhaW5lclsid2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4iXSA/IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGNhbnZhc0NvbnRhaW5lclsid2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4iXShFbGVtZW50WyJBTExPV19LRVlCT0FSRF9JTlBVVCJdKQogICAgICAgICAgICB9KSA6IG51bGwpIHx8IChjYW52YXNDb250YWluZXJbIndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuIl0gPyAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBjYW52YXNDb250YWluZXJbIndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuIl0oRWxlbWVudFsiQUxMT1dfS0VZQk9BUkRfSU5QVVQiXSkKICAgICAgICAgICAgfSkgOiBudWxsKTsKICAgICAgICAgICAgaWYgKHZyRGV2aWNlKSB7CiAgICAgICAgICAgICAgICBjYW52YXNDb250YWluZXIucmVxdWVzdEZ1bGxzY3JlZW4oewogICAgICAgICAgICAgICAgICAgIHZyRGlzcGxheTogdnJEZXZpY2UKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjYW52YXNDb250YWluZXIucmVxdWVzdEZ1bGxzY3JlZW4oKQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgcmVxdWVzdEZ1bGxTY3JlZW46IChmdW5jdGlvbihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzLCB2ckRldmljZSkgewogICAgICAgICAgICBNb2R1bGUucHJpbnRFcnIoIkJyb3dzZXIucmVxdWVzdEZ1bGxTY3JlZW4oKSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgY2FsbCBCcm93c2VyLnJlcXVlc3RGdWxsc2NyZWVuIGluc3RlYWQuIik7CiAgICAgICAgICAgIEJyb3dzZXIucmVxdWVzdEZ1bGxTY3JlZW4gPSAoZnVuY3Rpb24obG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcywgdnJEZXZpY2UpIHsKICAgICAgICAgICAgICAgIHJldHVybiBCcm93c2VyLnJlcXVlc3RGdWxsc2NyZWVuKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMsIHZyRGV2aWNlKQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgcmV0dXJuIEJyb3dzZXIucmVxdWVzdEZ1bGxzY3JlZW4obG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcywgdnJEZXZpY2UpCiAgICAgICAgfSksCiAgICAgICAgbmV4dFJBRjogMCwKICAgICAgICBmYWtlUmVxdWVzdEFuaW1hdGlvbkZyYW1lOiAoZnVuY3Rpb24oZnVuYykgewogICAgICAgICAgICB2YXIgbm93ID0gRGF0ZS5ub3coKTsKICAgICAgICAgICAgaWYgKEJyb3dzZXIubmV4dFJBRiA9PT0gMCkgewogICAgICAgICAgICAgICAgQnJvd3Nlci5uZXh0UkFGID0gbm93ICsgMWUzIC8gNjAKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHdoaWxlIChub3cgKyAyID49IEJyb3dzZXIubmV4dFJBRikgewogICAgICAgICAgICAgICAgICAgIEJyb3dzZXIubmV4dFJBRiArPSAxZTMgLyA2MAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBkZWxheSA9IE1hdGgubWF4KEJyb3dzZXIubmV4dFJBRiAtIG5vdywgMCk7CiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuYywgZGVsYXkpCiAgICAgICAgfSksCiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lOiBmdW5jdGlvbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYykgewogICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgIEJyb3dzZXIuZmFrZVJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHdpbmRvd1sicmVxdWVzdEFuaW1hdGlvbkZyYW1lIl0gfHwgd2luZG93WyJtb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSB8fCB3aW5kb3dbIndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSJdIHx8IHdpbmRvd1sibXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSB8fCB3aW5kb3dbIm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSB8fCBCcm93c2VyLmZha2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYykKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgc2FmZUNhbGxiYWNrOiAoZnVuY3Rpb24oZnVuYykgewogICAgICAgICAgICByZXR1cm4gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgaWYgKCFBQk9SVCkgcmV0dXJuIGZ1bmMuYXBwbHkobnVsbCwgYXJndW1lbnRzKQogICAgICAgICAgICB9KQogICAgICAgIH0pLAogICAgICAgIGFsbG93QXN5bmNDYWxsYmFja3M6IHRydWUsCiAgICAgICAgcXVldWVkQXN5bmNDYWxsYmFja3M6IFtdLAogICAgICAgIHBhdXNlQXN5bmNDYWxsYmFja3M6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgQnJvd3Nlci5hbGxvd0FzeW5jQ2FsbGJhY2tzID0gZmFsc2UKICAgICAgICB9KSwKICAgICAgICByZXN1bWVBc3luY0NhbGxiYWNrczogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBCcm93c2VyLmFsbG93QXN5bmNDYWxsYmFja3MgPSB0cnVlOwogICAgICAgICAgICBpZiAoQnJvd3Nlci5xdWV1ZWRBc3luY0NhbGxiYWNrcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICB2YXIgY2FsbGJhY2tzID0gQnJvd3Nlci5xdWV1ZWRBc3luY0NhbGxiYWNrczsKICAgICAgICAgICAgICAgIEJyb3dzZXIucXVldWVkQXN5bmNDYWxsYmFja3MgPSBbXTsKICAgICAgICAgICAgICAgIGNhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbihmdW5jKSB7CiAgICAgICAgICAgICAgICAgICAgZnVuYygpCiAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIHNhZmVSZXF1ZXN0QW5pbWF0aW9uRnJhbWU6IChmdW5jdGlvbihmdW5jKSB7CiAgICAgICAgICAgIHJldHVybiBCcm93c2VyLnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAoQUJPUlQpIHJldHVybjsKICAgICAgICAgICAgICAgIGlmIChCcm93c2VyLmFsbG93QXN5bmNDYWxsYmFja3MpIHsKICAgICAgICAgICAgICAgICAgICBmdW5jKCkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgQnJvd3Nlci5xdWV1ZWRBc3luY0NhbGxiYWNrcy5wdXNoKGZ1bmMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pKQogICAgICAgIH0pLAogICAgICAgIHNhZmVTZXRUaW1lb3V0OiAoZnVuY3Rpb24oZnVuYywgdGltZW91dCkgewogICAgICAgICAgICBNb2R1bGVbIm5vRXhpdFJ1bnRpbWUiXSA9IHRydWU7CiAgICAgICAgICAgIHJldHVybiBzZXRUaW1lb3V0KChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGlmIChBQk9SVCkgcmV0dXJuOwogICAgICAgICAgICAgICAgaWYgKEJyb3dzZXIuYWxsb3dBc3luY0NhbGxiYWNrcykgewogICAgICAgICAgICAgICAgICAgIGZ1bmMoKQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBCcm93c2VyLnF1ZXVlZEFzeW5jQ2FsbGJhY2tzLnB1c2goZnVuYykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksIHRpbWVvdXQpCiAgICAgICAgfSksCiAgICAgICAgc2FmZVNldEludGVydmFsOiAoZnVuY3Rpb24oZnVuYywgdGltZW91dCkgewogICAgICAgICAgICBNb2R1bGVbIm5vRXhpdFJ1bnRpbWUiXSA9IHRydWU7CiAgICAgICAgICAgIHJldHVybiBzZXRJbnRlcnZhbCgoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAoQUJPUlQpIHJldHVybjsKICAgICAgICAgICAgICAgIGlmIChCcm93c2VyLmFsbG93QXN5bmNDYWxsYmFja3MpIHsKICAgICAgICAgICAgICAgICAgICBmdW5jKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksIHRpbWVvdXQpCiAgICAgICAgfSksCiAgICAgICAgZ2V0TWltZXR5cGU6IChmdW5jdGlvbihuYW1lKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAianBnIjogImltYWdlL2pwZWciLAogICAgICAgICAgICAgICAgImpwZWciOiAiaW1hZ2UvanBlZyIsCiAgICAgICAgICAgICAgICAicG5nIjogImltYWdlL3BuZyIsCiAgICAgICAgICAgICAgICAiYm1wIjogImltYWdlL2JtcCIsCiAgICAgICAgICAgICAgICAib2dnIjogImF1ZGlvL29nZyIsCiAgICAgICAgICAgICAgICAid2F2IjogImF1ZGlvL3dhdiIsCiAgICAgICAgICAgICAgICAibXAzIjogImF1ZGlvL21wZWciCiAgICAgICAgICAgIH0gW25hbWUuc3Vic3RyKG5hbWUubGFzdEluZGV4T2YoIi4iKSArIDEpXQogICAgICAgIH0pLAogICAgICAgIGdldFVzZXJNZWRpYTogKGZ1bmN0aW9uKGZ1bmMpIHsKICAgICAgICAgICAgaWYgKCF3aW5kb3cuZ2V0VXNlck1lZGlhKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cuZ2V0VXNlck1lZGlhID0gbmF2aWdhdG9yWyJnZXRVc2VyTWVkaWEiXSB8fCBuYXZpZ2F0b3JbIm1vekdldFVzZXJNZWRpYSJdCiAgICAgICAgICAgIH0KICAgICAgICAgICAgd2luZG93LmdldFVzZXJNZWRpYShmdW5jKQogICAgICAgIH0pLAogICAgICAgIGdldE1vdmVtZW50WDogKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgIHJldHVybiBldmVudFsibW92ZW1lbnRYIl0gfHwgZXZlbnRbIm1vek1vdmVtZW50WCJdIHx8IGV2ZW50WyJ3ZWJraXRNb3ZlbWVudFgiXSB8fCAwCiAgICAgICAgfSksCiAgICAgICAgZ2V0TW92ZW1lbnRZOiAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgcmV0dXJuIGV2ZW50WyJtb3ZlbWVudFkiXSB8fCBldmVudFsibW96TW92ZW1lbnRZIl0gfHwgZXZlbnRbIndlYmtpdE1vdmVtZW50WSJdIHx8IDAKICAgICAgICB9KSwKICAgICAgICBnZXRNb3VzZVdoZWVsRGVsdGE6IChmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICB2YXIgZGVsdGEgPSAwOwogICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIkRPTU1vdXNlU2Nyb2xsIjoKICAgICAgICAgICAgICAgICAgICBkZWx0YSA9IGV2ZW50LmRldGFpbDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIm1vdXNld2hlZWwiOgogICAgICAgICAgICAgICAgICAgIGRlbHRhID0gZXZlbnQud2hlZWxEZWx0YTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIndoZWVsIjoKICAgICAgICAgICAgICAgICAgICBkZWx0YSA9IGV2ZW50WyJkZWx0YVkiXTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgInVucmVjb2duaXplZCBtb3VzZSB3aGVlbCBldmVudDogIiArIGV2ZW50LnR5cGUKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZGVsdGEKICAgICAgICB9KSwKICAgICAgICBtb3VzZVg6IDAsCiAgICAgICAgbW91c2VZOiAwLAogICAgICAgIG1vdXNlTW92ZW1lbnRYOiAwLAogICAgICAgIG1vdXNlTW92ZW1lbnRZOiAwLAogICAgICAgIHRvdWNoZXM6IHt9LAogICAgICAgIGxhc3RUb3VjaGVzOiB7fSwKICAgICAgICBjYWxjdWxhdGVNb3VzZUV2ZW50OiAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgaWYgKEJyb3dzZXIucG9pbnRlckxvY2spIHsKICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlICE9ICJtb3VzZW1vdmUiICYmICJtb3pNb3ZlbWVudFgiIGluIGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgQnJvd3Nlci5tb3VzZU1vdmVtZW50WCA9IEJyb3dzZXIubW91c2VNb3ZlbWVudFkgPSAwCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFggPSBCcm93c2VyLmdldE1vdmVtZW50WChldmVudCk7CiAgICAgICAgICAgICAgICAgICAgQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9IEJyb3dzZXIuZ2V0TW92ZW1lbnRZKGV2ZW50KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgICAgICBCcm93c2VyLm1vdXNlWCA9IFNETC5tb3VzZVggKyBCcm93c2VyLm1vdXNlTW92ZW1lbnRYOwogICAgICAgICAgICAgICAgICAgIEJyb3dzZXIubW91c2VZID0gU0RMLm1vdXNlWSArIEJyb3dzZXIubW91c2VNb3ZlbWVudFkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgQnJvd3Nlci5tb3VzZVggKz0gQnJvd3Nlci5tb3VzZU1vdmVtZW50WDsKICAgICAgICAgICAgICAgICAgICBCcm93c2VyLm1vdXNlWSArPSBCcm93c2VyLm1vdXNlTW92ZW1lbnRZCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgcmVjdCA9IE1vZHVsZVsiY2FudmFzIl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgICAgICAgICB2YXIgY3cgPSBNb2R1bGVbImNhbnZhcyJdLndpZHRoOwogICAgICAgICAgICAgICAgdmFyIGNoID0gTW9kdWxlWyJjYW52YXMiXS5oZWlnaHQ7CiAgICAgICAgICAgICAgICB2YXIgc2Nyb2xsWCA9IHR5cGVvZiB3aW5kb3cuc2Nyb2xsWCAhPT0gInVuZGVmaW5lZCIgPyB3aW5kb3cuc2Nyb2xsWCA6IHdpbmRvdy5wYWdlWE9mZnNldDsKICAgICAgICAgICAgICAgIHZhciBzY3JvbGxZID0gdHlwZW9mIHdpbmRvdy5zY3JvbGxZICE9PSAidW5kZWZpbmVkIiA/IHdpbmRvdy5zY3JvbGxZIDogd2luZG93LnBhZ2VZT2Zmc2V0OwogICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJ0b3VjaHN0YXJ0IiB8fCBldmVudC50eXBlID09PSAidG91Y2hlbmQiIHx8IGV2ZW50LnR5cGUgPT09ICJ0b3VjaG1vdmUiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRvdWNoID0gZXZlbnQudG91Y2g7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRvdWNoID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHZhciBhZGp1c3RlZFggPSB0b3VjaC5wYWdlWCAtIChzY3JvbGxYICsgcmVjdC5sZWZ0KTsKICAgICAgICAgICAgICAgICAgICB2YXIgYWRqdXN0ZWRZID0gdG91Y2gucGFnZVkgLSAoc2Nyb2xsWSArIHJlY3QudG9wKTsKICAgICAgICAgICAgICAgICAgICBhZGp1c3RlZFggPSBhZGp1c3RlZFggKiAoY3cgLyByZWN0LndpZHRoKTsKICAgICAgICAgICAgICAgICAgICBhZGp1c3RlZFkgPSBhZGp1c3RlZFkgKiAoY2ggLyByZWN0LmhlaWdodCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNvb3JkcyA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgeDogYWRqdXN0ZWRYLAogICAgICAgICAgICAgICAgICAgICAgICB5OiBhZGp1c3RlZFkKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSAidG91Y2hzdGFydCIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQnJvd3Nlci5sYXN0VG91Y2hlc1t0b3VjaC5pZGVudGlmaWVyXSA9IGNvb3JkczsKICAgICAgICAgICAgICAgICAgICAgICAgQnJvd3Nlci50b3VjaGVzW3RvdWNoLmlkZW50aWZpZXJdID0gY29vcmRzCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09PSAidG91Y2hlbmQiIHx8IGV2ZW50LnR5cGUgPT09ICJ0b3VjaG1vdmUiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYXN0ID0gQnJvd3Nlci50b3VjaGVzW3RvdWNoLmlkZW50aWZpZXJdOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxhc3QpIGxhc3QgPSBjb29yZHM7CiAgICAgICAgICAgICAgICAgICAgICAgIEJyb3dzZXIubGFzdFRvdWNoZXNbdG91Y2guaWRlbnRpZmllcl0gPSBsYXN0OwogICAgICAgICAgICAgICAgICAgICAgICBCcm93c2VyLnRvdWNoZXNbdG91Y2guaWRlbnRpZmllcl0gPSBjb29yZHMKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgeCA9IGV2ZW50LnBhZ2VYIC0gKHNjcm9sbFggKyByZWN0LmxlZnQpOwogICAgICAgICAgICAgICAgdmFyIHkgPSBldmVudC5wYWdlWSAtIChzY3JvbGxZICsgcmVjdC50b3ApOwogICAgICAgICAgICAgICAgeCA9IHggKiAoY3cgLyByZWN0LndpZHRoKTsKICAgICAgICAgICAgICAgIHkgPSB5ICogKGNoIC8gcmVjdC5oZWlnaHQpOwogICAgICAgICAgICAgICAgQnJvd3Nlci5tb3VzZU1vdmVtZW50WCA9IHggLSBCcm93c2VyLm1vdXNlWDsKICAgICAgICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFkgPSB5IC0gQnJvd3Nlci5tb3VzZVk7CiAgICAgICAgICAgICAgICBCcm93c2VyLm1vdXNlWCA9IHg7CiAgICAgICAgICAgICAgICBCcm93c2VyLm1vdXNlWSA9IHkKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIGFzeW5jTG9hZDogKGZ1bmN0aW9uKHVybCwgb25sb2FkLCBvbmVycm9yLCBub1J1bkRlcCkgewogICAgICAgICAgICB2YXIgZGVwID0gIW5vUnVuRGVwID8gZ2V0VW5pcXVlUnVuRGVwZW5kZW5jeSgiYWwgIiArIHVybCkgOiAiIjsKICAgICAgICAgICAgTW9kdWxlWyJyZWFkQXN5bmMiXSh1cmwsIChmdW5jdGlvbihhcnJheUJ1ZmZlcikgewogICAgICAgICAgICAgICAgYXNzZXJ0KGFycmF5QnVmZmVyLCAnTG9hZGluZyBkYXRhIGZpbGUgIicgKyB1cmwgKyAnIiBmYWlsZWQgKG5vIGFycmF5QnVmZmVyKS4nKTsKICAgICAgICAgICAgICAgIG9ubG9hZChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikpOwogICAgICAgICAgICAgICAgaWYgKGRlcCkgcmVtb3ZlUnVuRGVwZW5kZW5jeShkZXApCiAgICAgICAgICAgIH0pLCAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICAgIGlmIChvbmVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgb25lcnJvcigpCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRocm93ICdMb2FkaW5nIGRhdGEgZmlsZSAiJyArIHVybCArICciIGZhaWxlZC4nCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgaWYgKGRlcCkgYWRkUnVuRGVwZW5kZW5jeShkZXApCiAgICAgICAgfSksCiAgICAgICAgcmVzaXplTGlzdGVuZXJzOiBbXSwKICAgICAgICB1cGRhdGVSZXNpemVMaXN0ZW5lcnM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsiY2FudmFzIl07CiAgICAgICAgICAgIEJyb3dzZXIucmVzaXplTGlzdGVuZXJzLmZvckVhY2goKGZ1bmN0aW9uKGxpc3RlbmVyKSB7CiAgICAgICAgICAgICAgICBsaXN0ZW5lcihjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpCiAgICAgICAgICAgIH0pKQogICAgICAgIH0pLAogICAgICAgIHNldENhbnZhc1NpemU6IChmdW5jdGlvbih3aWR0aCwgaGVpZ2h0LCBub1VwZGF0ZXMpIHsKICAgICAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsiY2FudmFzIl07CiAgICAgICAgICAgIEJyb3dzZXIudXBkYXRlQ2FudmFzRGltZW5zaW9ucyhjYW52YXMsIHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICBpZiAoIW5vVXBkYXRlcykgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMoKQogICAgICAgIH0pLAogICAgICAgIHdpbmRvd2VkV2lkdGg6IDAsCiAgICAgICAgd2luZG93ZWRIZWlnaHQ6IDAsCiAgICAgICAgc2V0RnVsbHNjcmVlbkNhbnZhc1NpemU6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgIHZhciBmbGFncyA9IEhFQVBVMzJbU0RMLnNjcmVlbiA+PiAyXTsKICAgICAgICAgICAgICAgIGZsYWdzID0gZmxhZ3MgfCA4Mzg4NjA4OwogICAgICAgICAgICAgICAgSEVBUDMyW1NETC5zY3JlZW4gPj4gMl0gPSBmbGFncwogICAgICAgICAgICB9CiAgICAgICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCkKICAgICAgICB9KSwKICAgICAgICBzZXRXaW5kb3dlZENhbnZhc1NpemU6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgIHZhciBmbGFncyA9IEhFQVBVMzJbU0RMLnNjcmVlbiA+PiAyXTsKICAgICAgICAgICAgICAgIGZsYWdzID0gZmxhZ3MgJiB+ODM4ODYwODsKICAgICAgICAgICAgICAgIEhFQVAzMltTREwuc2NyZWVuID4+IDJdID0gZmxhZ3MKICAgICAgICAgICAgfQogICAgICAgICAgICBCcm93c2VyLnVwZGF0ZVJlc2l6ZUxpc3RlbmVycygpCiAgICAgICAgfSksCiAgICAgICAgdXBkYXRlQ2FudmFzRGltZW5zaW9uczogKGZ1bmN0aW9uKGNhbnZhcywgd05hdGl2ZSwgaE5hdGl2ZSkgewogICAgICAgICAgICBpZiAod05hdGl2ZSAmJiBoTmF0aXZlKSB7CiAgICAgICAgICAgICAgICBjYW52YXMud2lkdGhOYXRpdmUgPSB3TmF0aXZlOwogICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodE5hdGl2ZSA9IGhOYXRpdmUKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHdOYXRpdmUgPSBjYW52YXMud2lkdGhOYXRpdmU7CiAgICAgICAgICAgICAgICBoTmF0aXZlID0gY2FudmFzLmhlaWdodE5hdGl2ZQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciB3ID0gd05hdGl2ZTsKICAgICAgICAgICAgdmFyIGggPSBoTmF0aXZlOwogICAgICAgICAgICBpZiAoTW9kdWxlWyJmb3JjZWRBc3BlY3RSYXRpbyJdICYmIE1vZHVsZVsiZm9yY2VkQXNwZWN0UmF0aW8iXSA+IDApIHsKICAgICAgICAgICAgICAgIGlmICh3IC8gaCA8IE1vZHVsZVsiZm9yY2VkQXNwZWN0UmF0aW8iXSkgewogICAgICAgICAgICAgICAgICAgIHcgPSBNYXRoLnJvdW5kKGggKiBNb2R1bGVbImZvcmNlZEFzcGVjdFJhdGlvIl0pCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGggPSBNYXRoLnJvdW5kKHcgLyBNb2R1bGVbImZvcmNlZEFzcGVjdFJhdGlvIl0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKChkb2N1bWVudFsiZnVsbHNjcmVlbkVsZW1lbnQiXSB8fCBkb2N1bWVudFsibW96RnVsbFNjcmVlbkVsZW1lbnQiXSB8fCBkb2N1bWVudFsibXNGdWxsc2NyZWVuRWxlbWVudCJdIHx8IGRvY3VtZW50WyJ3ZWJraXRGdWxsc2NyZWVuRWxlbWVudCJdIHx8IGRvY3VtZW50WyJ3ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQiXSkgPT09IGNhbnZhcy5wYXJlbnROb2RlICYmIHR5cGVvZiBzY3JlZW4gIT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgIHZhciBmYWN0b3IgPSBNYXRoLm1pbihzY3JlZW4ud2lkdGggLyB3LCBzY3JlZW4uaGVpZ2h0IC8gaCk7CiAgICAgICAgICAgICAgICB3ID0gTWF0aC5yb3VuZCh3ICogZmFjdG9yKTsKICAgICAgICAgICAgICAgIGggPSBNYXRoLnJvdW5kKGggKiBmYWN0b3IpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKEJyb3dzZXIucmVzaXplQ2FudmFzKSB7CiAgICAgICAgICAgICAgICBpZiAoY2FudmFzLndpZHRoICE9IHcpIGNhbnZhcy53aWR0aCA9IHc7CiAgICAgICAgICAgICAgICBpZiAoY2FudmFzLmhlaWdodCAhPSBoKSBjYW52YXMuaGVpZ2h0ID0gaDsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FudmFzLnN0eWxlICE9ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgICAgICAgICAgY2FudmFzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ3aWR0aCIpOwogICAgICAgICAgICAgICAgICAgIGNhbnZhcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiaGVpZ2h0IikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChjYW52YXMud2lkdGggIT0gd05hdGl2ZSkgY2FudmFzLndpZHRoID0gd05hdGl2ZTsKICAgICAgICAgICAgICAgIGlmIChjYW52YXMuaGVpZ2h0ICE9IGhOYXRpdmUpIGNhbnZhcy5oZWlnaHQgPSBoTmF0aXZlOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYW52YXMuc3R5bGUgIT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAodyAhPSB3TmF0aXZlIHx8IGggIT0gaE5hdGl2ZSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgdyArICJweCIsICJpbXBvcnRhbnQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLnN0eWxlLnNldFByb3BlcnR5KCJoZWlnaHQiLCBoICsgInB4IiwgImltcG9ydGFudCIpCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ3aWR0aCIpOwogICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoImhlaWdodCIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgd2dldFJlcXVlc3RzOiB7fSwKICAgICAgICBuZXh0V2dldFJlcXVlc3RIYW5kbGU6IDAsCiAgICAgICAgZ2V0TmV4dFdnZXRSZXF1ZXN0SGFuZGxlOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBoYW5kbGUgPSBCcm93c2VyLm5leHRXZ2V0UmVxdWVzdEhhbmRsZTsKICAgICAgICAgICAgQnJvd3Nlci5uZXh0V2dldFJlcXVlc3RIYW5kbGUrKzsKICAgICAgICAgICAgcmV0dXJuIGhhbmRsZQogICAgICAgIH0pCiAgICB9OwogICAgdmFyIF9lbnZpcm9uID0gU1RBVElDVE9QOwogICAgU1RBVElDVE9QICs9IDE2OwoKICAgIGZ1bmN0aW9uIF9fX2J1aWxkRW52aXJvbm1lbnQoZW52KSB7CiAgICAgICAgdmFyIE1BWF9FTlZfVkFMVUVTID0gNjQ7CiAgICAgICAgdmFyIFRPVEFMX0VOVl9TSVpFID0gMTAyNDsKICAgICAgICB2YXIgcG9vbFB0cjsKICAgICAgICB2YXIgZW52UHRyOwogICAgICAgIGlmICghX19fYnVpbGRFbnZpcm9ubWVudC5jYWxsZWQpIHsKICAgICAgICAgICAgX19fYnVpbGRFbnZpcm9ubWVudC5jYWxsZWQgPSB0cnVlOwogICAgICAgICAgICBFTlZbIlVTRVIiXSA9IEVOVlsiTE9HTkFNRSJdID0gIndlYl91c2VyIjsKICAgICAgICAgICAgRU5WWyJQQVRIIl0gPSAiLyI7CiAgICAgICAgICAgIEVOVlsiUFdEIl0gPSAiLyI7CiAgICAgICAgICAgIEVOVlsiSE9NRSJdID0gIi9ob21lL3dlYl91c2VyIjsKICAgICAgICAgICAgRU5WWyJMQU5HIl0gPSAiQy5VVEYtOCI7CiAgICAgICAgICAgIEVOVlsiXyJdID0gTW9kdWxlWyJ0aGlzUHJvZ3JhbSJdOwogICAgICAgICAgICBwb29sUHRyID0gc3RhdGljQWxsb2MoVE9UQUxfRU5WX1NJWkUpOwogICAgICAgICAgICBlbnZQdHIgPSBzdGF0aWNBbGxvYyhNQVhfRU5WX1ZBTFVFUyAqIDQpOwogICAgICAgICAgICBIRUFQMzJbZW52UHRyID4+IDJdID0gcG9vbFB0cjsKICAgICAgICAgICAgSEVBUDMyW19lbnZpcm9uID4+IDJdID0gZW52UHRyCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZW52UHRyID0gSEVBUDMyW19lbnZpcm9uID4+IDJdOwogICAgICAgICAgICBwb29sUHRyID0gSEVBUDMyW2VudlB0ciA+PiAyXQogICAgICAgIH0KICAgICAgICB2YXIgc3RyaW5ncyA9IFtdOwogICAgICAgIHZhciB0b3RhbFNpemUgPSAwOwogICAgICAgIGZvciAodmFyIGtleSBpbiBlbnYpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlbnZba2V5XSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICAgIHZhciBsaW5lID0ga2V5ICsgIj0iICsgZW52W2tleV07CiAgICAgICAgICAgICAgICBzdHJpbmdzLnB1c2gobGluZSk7CiAgICAgICAgICAgICAgICB0b3RhbFNpemUgKz0gbGluZS5sZW5ndGgKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAodG90YWxTaXplID4gVE9UQUxfRU5WX1NJWkUpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFbnZpcm9ubWVudCBzaXplIGV4Y2VlZGVkIFRPVEFMX0VOVl9TSVpFISIpCiAgICAgICAgfQogICAgICAgIHZhciBwdHJTaXplID0gNDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmluZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIGxpbmUgPSBzdHJpbmdzW2ldOwogICAgICAgICAgICB3cml0ZUFzY2lpVG9NZW1vcnkobGluZSwgcG9vbFB0cik7CiAgICAgICAgICAgIEhFQVAzMltlbnZQdHIgKyBpICogcHRyU2l6ZSA+PiAyXSA9IHBvb2xQdHI7CiAgICAgICAgICAgIHBvb2xQdHIgKz0gbGluZS5sZW5ndGggKyAxCiAgICAgICAgfQogICAgICAgIEhFQVAzMltlbnZQdHIgKyBzdHJpbmdzLmxlbmd0aCAqIHB0clNpemUgPj4gMl0gPSAwCiAgICB9CiAgICB2YXIgRU5WID0ge307CgogICAgZnVuY3Rpb24gX2dldGVudihuYW1lKSB7CiAgICAgICAgaWYgKG5hbWUgPT09IDApIHJldHVybiAwOwogICAgICAgIG5hbWUgPSBQb2ludGVyX3N0cmluZ2lmeShuYW1lKTsKICAgICAgICBpZiAoIUVOVi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgcmV0dXJuIDA7CiAgICAgICAgaWYgKF9nZXRlbnYucmV0KSBfZnJlZShfZ2V0ZW52LnJldCk7CiAgICAgICAgX2dldGVudi5yZXQgPSBhbGxvY2F0ZVVURjgoRU5WW25hbWVdKTsKICAgICAgICByZXR1cm4gX2dldGVudi5yZXQKICAgIH0KCiAgICBmdW5jdGlvbiBfcHV0ZW52KHN0cmluZykgewogICAgICAgIGlmIChzdHJpbmcgPT09IDApIHsKICAgICAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUlOVkFMKTsKICAgICAgICAgICAgcmV0dXJuIC0xCiAgICAgICAgfQogICAgICAgIHN0cmluZyA9IFBvaW50ZXJfc3RyaW5naWZ5KHN0cmluZyk7CiAgICAgICAgdmFyIHNwbGl0UG9pbnQgPSBzdHJpbmcuaW5kZXhPZigiPSIpOwogICAgICAgIGlmIChzdHJpbmcgPT09ICIiIHx8IHN0cmluZy5pbmRleE9mKCI9IikgPT09IC0xKSB7CiAgICAgICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7CiAgICAgICAgICAgIHJldHVybiAtMQogICAgICAgIH0KICAgICAgICB2YXIgbmFtZSA9IHN0cmluZy5zbGljZSgwLCBzcGxpdFBvaW50KTsKICAgICAgICB2YXIgdmFsdWUgPSBzdHJpbmcuc2xpY2Uoc3BsaXRQb2ludCArIDEpOwogICAgICAgIGlmICghKG5hbWUgaW4gRU5WKSB8fCBFTlZbbmFtZV0gIT09IHZhbHVlKSB7CiAgICAgICAgICAgIEVOVltuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICBfX19idWlsZEVudmlyb25tZW50KEVOVikKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfU0RMX1JXRnJvbUNvbnN0TWVtKG1lbSwgc2l6ZSkgewogICAgICAgIHZhciBpZCA9IFNETC5yd29wcy5sZW5ndGg7CiAgICAgICAgU0RMLnJ3b3BzLnB1c2goewogICAgICAgICAgICBieXRlczogbWVtLAogICAgICAgICAgICBjb3VudDogc2l6ZQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBpZAogICAgfQoKICAgIGZ1bmN0aW9uIF9UVEZfRm9udEhlaWdodChmb250KSB7CiAgICAgICAgdmFyIGZvbnREYXRhID0gU0RMLmZvbnRzW2ZvbnRdOwogICAgICAgIHJldHVybiBmb250RGF0YS5zaXplCiAgICB9CgogICAgZnVuY3Rpb24gX1RURl9TaXplVGV4dChmb250LCB0ZXh0LCB3LCBoKSB7CiAgICAgICAgdmFyIGZvbnREYXRhID0gU0RMLmZvbnRzW2ZvbnRdOwogICAgICAgIGlmICh3KSB7CiAgICAgICAgICAgIEhFQVAzMlt3ID4+IDJdID0gU0RMLmVzdGltYXRlVGV4dFdpZHRoKGZvbnREYXRhLCBQb2ludGVyX3N0cmluZ2lmeSh0ZXh0KSkKICAgICAgICB9CiAgICAgICAgaWYgKGgpIHsKICAgICAgICAgICAgSEVBUDMyW2ggPj4gMl0gPSBmb250RGF0YS5zaXplCiAgICAgICAgfQogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX1RURl9SZW5kZXJUZXh0X1NvbGlkKGZvbnQsIHRleHQsIGNvbG9yKSB7CiAgICAgICAgdGV4dCA9IFBvaW50ZXJfc3RyaW5naWZ5KHRleHQpIHx8ICIgIjsKICAgICAgICB2YXIgZm9udERhdGEgPSBTREwuZm9udHNbZm9udF07CiAgICAgICAgdmFyIHcgPSBTREwuZXN0aW1hdGVUZXh0V2lkdGgoZm9udERhdGEsIHRleHQpOwogICAgICAgIHZhciBoID0gZm9udERhdGEuc2l6ZTsKICAgICAgICBjb2xvciA9IFNETC5sb2FkQ29sb3JUb0NTU1JHQihjb2xvcik7CiAgICAgICAgdmFyIGZvbnRTdHJpbmcgPSBTREwubWFrZUZvbnRTdHJpbmcoaCwgZm9udERhdGEubmFtZSk7CiAgICAgICAgdmFyIHN1cmYgPSBTREwubWFrZVN1cmZhY2UodywgaCwgMCwgZmFsc2UsICJ0ZXh0OiIgKyB0ZXh0KTsKICAgICAgICB2YXIgc3VyZkRhdGEgPSBTREwuc3VyZmFjZXNbc3VyZl07CiAgICAgICAgc3VyZkRhdGEuY3R4LnNhdmUoKTsKICAgICAgICBzdXJmRGF0YS5jdHguZmlsbFN0eWxlID0gY29sb3I7CiAgICAgICAgc3VyZkRhdGEuY3R4LmZvbnQgPSBmb250U3RyaW5nOwogICAgICAgIHN1cmZEYXRhLmN0eC50ZXh0QmFzZWxpbmUgPSAiYm90dG9tIjsKICAgICAgICBzdXJmRGF0YS5jdHguZmlsbFRleHQodGV4dCwgMCwgaCB8IDApOwogICAgICAgIHN1cmZEYXRhLmN0eC5yZXN0b3JlKCk7CiAgICAgICAgcmV0dXJuIHN1cmYKICAgIH0KCiAgICBmdW5jdGlvbiBfTWl4X0hhbHRNdXNpYygpIHsKICAgICAgICB2YXIgYXVkaW8gPSBTREwubXVzaWMuYXVkaW87CiAgICAgICAgaWYgKGF1ZGlvKSB7CiAgICAgICAgICAgIGF1ZGlvLnNyYyA9IGF1ZGlvLnNyYzsKICAgICAgICAgICAgYXVkaW8uY3VycmVudFBvc2l0aW9uID0gMDsKICAgICAgICAgICAgYXVkaW8ucGF1c2UoKQogICAgICAgIH0KICAgICAgICBTREwubXVzaWMuYXVkaW8gPSBudWxsOwogICAgICAgIGlmIChTREwuaG9va011c2ljRmluaXNoZWQpIHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3YiXShTREwuaG9va011c2ljRmluaXNoZWQpCiAgICAgICAgfQogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX01peF9QbGF5TXVzaWMoaWQsIGxvb3BzKSB7CiAgICAgICAgaWYgKFNETC5tdXNpYy5hdWRpbykgewogICAgICAgICAgICBpZiAoIVNETC5tdXNpYy5hdWRpby5wYXVzZWQpIE1vZHVsZS5wcmludEVycigiTXVzaWMgaXMgYWxyZWFkeSBwbGF5aW5nLiAiICsgU0RMLm11c2ljLnNvdXJjZSk7CiAgICAgICAgICAgIFNETC5tdXNpYy5hdWRpby5wYXVzZSgpCiAgICAgICAgfQogICAgICAgIHZhciBpbmZvID0gU0RMLmF1ZGlvc1tpZF07CiAgICAgICAgdmFyIGF1ZGlvOwogICAgICAgIGlmIChpbmZvLndlYkF1ZGlvKSB7CiAgICAgICAgICAgIGF1ZGlvID0ge307CiAgICAgICAgICAgIGF1ZGlvLnJlc291cmNlID0gaW5mbzsKICAgICAgICAgICAgYXVkaW8ucGF1c2VkID0gZmFsc2U7CiAgICAgICAgICAgIGF1ZGlvLmN1cnJlbnRQb3NpdGlvbiA9IDA7CiAgICAgICAgICAgIGF1ZGlvLnBsYXkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBTREwucGxheVdlYkF1ZGlvKHRoaXMpCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBhdWRpby5wYXVzZSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIFNETC5wYXVzZVdlYkF1ZGlvKHRoaXMpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSBlbHNlIGlmIChpbmZvLmF1ZGlvKSB7CiAgICAgICAgICAgIGF1ZGlvID0gaW5mby5hdWRpbwogICAgICAgIH0KICAgICAgICBhdWRpb1sib25lbmRlZCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoU0RMLm11c2ljLmF1ZGlvID09IHRoaXMpIF9NaXhfSGFsdE11c2ljKCkKICAgICAgICB9KTsKICAgICAgICBhdWRpby5sb29wID0gbG9vcHMgIT0gMDsKICAgICAgICBhdWRpby52b2x1bWUgPSBTREwubXVzaWMudm9sdW1lOwogICAgICAgIFNETC5tdXNpYy5hdWRpbyA9IGF1ZGlvOwogICAgICAgIGF1ZGlvLnBsYXkoKTsKICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9NaXhfRnJlZUNodW5rKGlkKSB7CiAgICAgICAgU0RMLmF1ZGlvc1tpZF0gPSBudWxsCiAgICB9CgogICAgZnVuY3Rpb24gX01peF9Mb2FkV0FWX1JXKHJ3b3BzSUQsIGZyZWVzcmMpIHsKICAgICAgICB2YXIgcndvcHMgPSBTREwucndvcHNbcndvcHNJRF07CiAgICAgICAgaWYgKHJ3b3BzID09PSB1bmRlZmluZWQpIHJldHVybiAwOwogICAgICAgIHZhciBmaWxlbmFtZSA9ICIiOwogICAgICAgIHZhciBhdWRpbzsKICAgICAgICB2YXIgd2ViQXVkaW87CiAgICAgICAgdmFyIGJ5dGVzOwogICAgICAgIGlmIChyd29wcy5maWxlbmFtZSAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIGZpbGVuYW1lID0gUEFUSC5yZXNvbHZlKHJ3b3BzLmZpbGVuYW1lKTsKICAgICAgICAgICAgdmFyIHJhdyA9IE1vZHVsZVsicHJlbG9hZGVkQXVkaW9zIl1bZmlsZW5hbWVdOwogICAgICAgICAgICBpZiAoIXJhdykgewogICAgICAgICAgICAgICAgaWYgKHJhdyA9PT0gbnVsbCkgTW9kdWxlLnByaW50RXJyKCJUcnlpbmcgdG8gcmV1c2UgcHJlbG9hZGVkIGF1ZGlvLCBidXQgZnJlZVByZWxvYWRlZE1lZGlhT25Vc2UgaXMgc2V0ISIpOwogICAgICAgICAgICAgICAgaWYgKCFNb2R1bGUubm9BdWRpb0RlY29kaW5nKSB3YXJuT25jZSgiQ2Fubm90IGZpbmQgcHJlbG9hZGVkIGF1ZGlvICIgKyBmaWxlbmFtZSk7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGJ5dGVzID0gRlMucmVhZEZpbGUoZmlsZW5hbWUpCiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgTW9kdWxlLnByaW50RXJyKCJDb3VsZG4ndCBmaW5kIGZpbGUgZm9yOiAiICsgZmlsZW5hbWUpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKE1vZHVsZVsiZnJlZVByZWxvYWRlZE1lZGlhT25Vc2UiXSkgewogICAgICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXVtmaWxlbmFtZV0gPSBudWxsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgYXVkaW8gPSByYXcKICAgICAgICB9IGVsc2UgaWYgKHJ3b3BzLmJ5dGVzICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgaWYgKFNETC53ZWJBdWRpb0F2YWlsYWJsZSgpKSBieXRlcyA9IEhFQVBVOC5idWZmZXIuc2xpY2UocndvcHMuYnl0ZXMsIHJ3b3BzLmJ5dGVzICsgcndvcHMuY291bnQpOwogICAgICAgICAgICBlbHNlIGJ5dGVzID0gSEVBUFU4LnN1YmFycmF5KHJ3b3BzLmJ5dGVzLCByd29wcy5ieXRlcyArIHJ3b3BzLmNvdW50KQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfQogICAgICAgIHZhciBhcnJheUJ1ZmZlciA9IGJ5dGVzID8gYnl0ZXMuYnVmZmVyIHx8IGJ5dGVzIDogYnl0ZXM7CiAgICAgICAgdmFyIGNhblBsYXlXaXRoV2ViQXVkaW8gPSBNb2R1bGVbIlNETF9jYW5QbGF5V2l0aFdlYkF1ZGlvIl0gPT09IHVuZGVmaW5lZCB8fCBNb2R1bGVbIlNETF9jYW5QbGF5V2l0aFdlYkF1ZGlvIl0oZmlsZW5hbWUsIGFycmF5QnVmZmVyKTsKICAgICAgICBpZiAoYnl0ZXMgIT09IHVuZGVmaW5lZCAmJiBTREwud2ViQXVkaW9BdmFpbGFibGUoKSAmJiBjYW5QbGF5V2l0aFdlYkF1ZGlvKSB7CiAgICAgICAgICAgIGF1ZGlvID0gdW5kZWZpbmVkOwogICAgICAgICAgICB3ZWJBdWRpbyA9IHt9OwogICAgICAgICAgICB3ZWJBdWRpby5vbkRlY29kZUNvbXBsZXRlID0gW107CgogICAgICAgICAgICBmdW5jdGlvbiBvbkRlY29kZUNvbXBsZXRlKGRhdGEpIHsKICAgICAgICAgICAgICAgIHdlYkF1ZGlvLmRlY29kZWRCdWZmZXIgPSBkYXRhOwogICAgICAgICAgICAgICAgd2ViQXVkaW8ub25EZWNvZGVDb21wbGV0ZS5mb3JFYWNoKChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgZSgpCiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICB3ZWJBdWRpby5vbkRlY29kZUNvbXBsZXRlID0gdW5kZWZpbmVkCiAgICAgICAgICAgIH0KICAgICAgICAgICAgU0RMLmF1ZGlvQ29udGV4dFsiZGVjb2RlQXVkaW9EYXRhIl0oYXJyYXlCdWZmZXIsIG9uRGVjb2RlQ29tcGxldGUpCiAgICAgICAgfSBlbHNlIGlmIChhdWRpbyA9PT0gdW5kZWZpbmVkICYmIGJ5dGVzKSB7CiAgICAgICAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoW2J5dGVzXSwgewogICAgICAgICAgICAgICAgdHlwZTogcndvcHMubWltZXR5cGUKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgICAgICAgICBhdWRpbyA9IG5ldyBBdWRpbzsKICAgICAgICAgICAgYXVkaW8uc3JjID0gdXJsOwogICAgICAgICAgICBhdWRpby5tb3pBdWRpb0NoYW5uZWxUeXBlID0gImNvbnRlbnQiCiAgICAgICAgfQogICAgICAgIHZhciBpZCA9IFNETC5hdWRpb3MubGVuZ3RoOwogICAgICAgIFNETC5hdWRpb3MucHVzaCh7CiAgICAgICAgICAgIHNvdXJjZTogZmlsZW5hbWUsCiAgICAgICAgICAgIGF1ZGlvOiBhdWRpbywKICAgICAgICAgICAgd2ViQXVkaW86IHdlYkF1ZGlvCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGlkCiAgICB9CgogICAgZnVuY3Rpb24gX01peF9QbGF5Q2hhbm5lbChjaGFubmVsLCBpZCwgbG9vcHMpIHsKICAgICAgICB2YXIgaW5mbyA9IFNETC5hdWRpb3NbaWRdOwogICAgICAgIGlmICghaW5mbykgcmV0dXJuIC0xOwogICAgICAgIGlmICghaW5mby5hdWRpbyAmJiAhaW5mby53ZWJBdWRpbykgcmV0dXJuIC0xOwogICAgICAgIGlmIChjaGFubmVsID09IC0xKSB7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSBTREwuY2hhbm5lbE1pbmltdW1OdW1iZXI7IGkgPCBTREwubnVtQ2hhbm5lbHM7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKCFTREwuY2hhbm5lbHNbaV0uYXVkaW8pIHsKICAgICAgICAgICAgICAgICAgICBjaGFubmVsID0gaTsKICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjaGFubmVsID09IC0xKSB7CiAgICAgICAgICAgICAgICBNb2R1bGUucHJpbnRFcnIoIkFsbCAiICsgU0RMLm51bUNoYW5uZWxzICsgIiBjaGFubmVscyBpbiB1c2UhIik7CiAgICAgICAgICAgICAgICByZXR1cm4gLTEKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB2YXIgY2hhbm5lbEluZm8gPSBTREwuY2hhbm5lbHNbY2hhbm5lbF07CiAgICAgICAgdmFyIGF1ZGlvOwogICAgICAgIGlmIChpbmZvLndlYkF1ZGlvKSB7CiAgICAgICAgICAgIGF1ZGlvID0ge307CiAgICAgICAgICAgIGF1ZGlvLnJlc291cmNlID0gaW5mbzsKICAgICAgICAgICAgYXVkaW8ucGF1c2VkID0gZmFsc2U7CiAgICAgICAgICAgIGF1ZGlvLmN1cnJlbnRQb3NpdGlvbiA9IDA7CiAgICAgICAgICAgIGF1ZGlvLnBsYXkgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBTREwucGxheVdlYkF1ZGlvKHRoaXMpCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBhdWRpby5wYXVzZSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIFNETC5wYXVzZVdlYkF1ZGlvKHRoaXMpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYXVkaW8gPSBpbmZvLmF1ZGlvLmNsb25lTm9kZSh0cnVlKTsKICAgICAgICAgICAgYXVkaW8ubnVtQ2hhbm5lbHMgPSBpbmZvLmF1ZGlvLm51bUNoYW5uZWxzOwogICAgICAgICAgICBhdWRpby5mcmVxdWVuY3kgPSBpbmZvLmF1ZGlvLmZyZXF1ZW5jeQogICAgICAgIH0KICAgICAgICBhdWRpb1sib25lbmRlZCJdID0gZnVuY3Rpb24gU0RMX2F1ZGlvX29uZW5kZWQoKSB7CiAgICAgICAgICAgIGlmIChjaGFubmVsSW5mby5hdWRpbyA9PSB0aGlzKSB7CiAgICAgICAgICAgICAgICBjaGFubmVsSW5mby5hdWRpby5wYXVzZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2hhbm5lbEluZm8uYXVkaW8gPSBudWxsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKFNETC5jaGFubmVsRmluaXNoZWQpIGdldEZ1bmNXcmFwcGVyKFNETC5jaGFubmVsRmluaXNoZWQsICJ2aSIpKGNoYW5uZWwpCiAgICAgICAgfTsKICAgICAgICBjaGFubmVsSW5mby5hdWRpbyA9IGF1ZGlvOwogICAgICAgIGF1ZGlvLmxvb3AgPSBsb29wcyAhPSAwOwogICAgICAgIGF1ZGlvLnZvbHVtZSA9IGNoYW5uZWxJbmZvLnZvbHVtZTsKICAgICAgICBhdWRpby5wbGF5KCk7CiAgICAgICAgcmV0dXJuIGNoYW5uZWwKICAgIH0KCiAgICBmdW5jdGlvbiBfU0RMX1BhdXNlQXVkaW8ocGF1c2VPbikgewogICAgICAgIGlmICghU0RMLmF1ZGlvKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBpZiAocGF1c2VPbikgewogICAgICAgICAgICBpZiAoU0RMLmF1ZGlvLnRpbWVyICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChTREwuYXVkaW8udGltZXIpOwogICAgICAgICAgICAgICAgU0RMLmF1ZGlvLm51bUF1ZGlvVGltZXJzUGVuZGluZyA9IDA7CiAgICAgICAgICAgICAgICBTREwuYXVkaW8udGltZXIgPSB1bmRlZmluZWQKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoIVNETC5hdWRpby50aW1lcikgewogICAgICAgICAgICBTREwuYXVkaW8ubnVtQXVkaW9UaW1lcnNQZW5kaW5nID0gMTsKICAgICAgICAgICAgU0RMLmF1ZGlvLnRpbWVyID0gQnJvd3Nlci5zYWZlU2V0VGltZW91dChTREwuYXVkaW8uY2FsbGVyLCAxKQogICAgICAgIH0KICAgICAgICBTREwuYXVkaW8ucGF1c2VkID0gcGF1c2VPbgogICAgfQoKICAgIGZ1bmN0aW9uIF9TRExfQ2xvc2VBdWRpbygpIHsKICAgICAgICBpZiAoU0RMLmF1ZGlvKSB7CiAgICAgICAgICAgIF9TRExfUGF1c2VBdWRpbygxKTsKICAgICAgICAgICAgX2ZyZWUoU0RMLmF1ZGlvLmJ1ZmZlcik7CiAgICAgICAgICAgIFNETC5hdWRpbyA9IG51bGw7CiAgICAgICAgICAgIFNETC5hbGxvY2F0ZUNoYW5uZWxzKDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9TRExfTG9ja1N1cmZhY2Uoc3VyZikgewogICAgICAgIHZhciBzdXJmRGF0YSA9IFNETC5zdXJmYWNlc1tzdXJmXTsKICAgICAgICBzdXJmRGF0YS5sb2NrZWQrKzsKICAgICAgICBpZiAoc3VyZkRhdGEubG9ja2VkID4gMSkgcmV0dXJuIDA7CiAgICAgICAgaWYgKCFzdXJmRGF0YS5idWZmZXIpIHsKICAgICAgICAgICAgc3VyZkRhdGEuYnVmZmVyID0gX21hbGxvYyhzdXJmRGF0YS53aWR0aCAqIHN1cmZEYXRhLmhlaWdodCAqIDQpOwogICAgICAgICAgICBIRUFQMzJbc3VyZiArIDIwID4+IDJdID0gc3VyZkRhdGEuYnVmZmVyCiAgICAgICAgfQogICAgICAgIEhFQVAzMltzdXJmICsgMjAgPj4gMl0gPSBzdXJmRGF0YS5idWZmZXI7CiAgICAgICAgaWYgKHN1cmYgPT0gU0RMLnNjcmVlbiAmJiBNb2R1bGUuc2NyZWVuSXNSZWFkT25seSAmJiBzdXJmRGF0YS5pbWFnZSkgcmV0dXJuIDA7CiAgICAgICAgaWYgKFNETC5kZWZhdWx0cy5kaXNjYXJkT25Mb2NrKSB7CiAgICAgICAgICAgIGlmICghc3VyZkRhdGEuaW1hZ2UpIHsKICAgICAgICAgICAgICAgIHN1cmZEYXRhLmltYWdlID0gc3VyZkRhdGEuY3R4LmNyZWF0ZUltYWdlRGF0YShzdXJmRGF0YS53aWR0aCwgc3VyZkRhdGEuaGVpZ2h0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghU0RMLmRlZmF1bHRzLm9wYXF1ZUZyb250QnVmZmVyKSByZXR1cm4KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdXJmRGF0YS5pbWFnZSA9IHN1cmZEYXRhLmN0eC5nZXRJbWFnZURhdGEoMCwgMCwgc3VyZkRhdGEud2lkdGgsIHN1cmZEYXRhLmhlaWdodCkKICAgICAgICB9CiAgICAgICAgaWYgKHN1cmYgPT0gU0RMLnNjcmVlbiAmJiBTREwuZGVmYXVsdHMub3BhcXVlRnJvbnRCdWZmZXIpIHsKICAgICAgICAgICAgdmFyIGRhdGEgPSBzdXJmRGF0YS5pbWFnZS5kYXRhOwogICAgICAgICAgICB2YXIgbnVtID0gZGF0YS5sZW5ndGg7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtIC8gNDsgaSsrKSB7CiAgICAgICAgICAgICAgICBkYXRhW2kgKiA0ICsgM10gPSAyNTUKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoU0RMLmRlZmF1bHRzLmNvcHlPbkxvY2sgJiYgIVNETC5kZWZhdWx0cy5kaXNjYXJkT25Mb2NrKSB7CiAgICAgICAgICAgIGlmIChzdXJmRGF0YS5pc0ZsYWdTZXQoMjA5NzE1MikpIHsKICAgICAgICAgICAgICAgIHRocm93ICJDb3B5T25Mb2NrIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFNETF9Mb2NrU3VyZmFjZSB3aXRoIFNETF9IV1BBTEVUVEUgZmxhZyBzZXQiICsgKG5ldyBFcnJvcikuc3RhY2sKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIEhFQVBVOC5zZXQoc3VyZkRhdGEuaW1hZ2UuZGF0YSwgc3VyZkRhdGEuYnVmZmVyKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX1NETF9GcmVlUlcocndvcHNJRCkgewogICAgICAgIFNETC5yd29wc1tyd29wc0lEXSA9IG51bGw7CiAgICAgICAgd2hpbGUgKFNETC5yd29wcy5sZW5ndGggPiAwICYmIFNETC5yd29wc1tTREwucndvcHMubGVuZ3RoIC0gMV0gPT09IG51bGwpIHsKICAgICAgICAgICAgU0RMLnJ3b3BzLnBvcCgpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9JTUdfTG9hZF9SVyhyd29wc0lELCBmcmVlU3JjKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIGNsZWFudXAgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAocndvcHMgJiYgZnJlZVNyYykgX1NETF9GcmVlUlcocndvcHNJRCkKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciByd29wcyA9IFNETC5yd29wc1tyd29wc0lEXTsKICAgICAgICAgICAgaWYgKHJ3b3BzID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGZpbGVuYW1lID0gcndvcHMuZmlsZW5hbWU7CiAgICAgICAgICAgIGlmIChmaWxlbmFtZSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICB3YXJuT25jZSgiT25seSBmaWxlIG5hbWVzIHRoYXQgaGF2ZSBiZWVuIHByZWxvYWRlZCBhcmUgc3VwcG9ydGVkIGZvciBJTUdfTG9hZF9SVy4gQ29uc2lkZXIgdXNpbmcgU1RCX0lNQUdFPTEgaWYgeW91IHdhbnQgc3luY2hyb25vdXMgaW1hZ2UgZGVjb2RpbmcgKHNlZSBzZXR0aW5ncy5qcyksIG9yIHBhY2thZ2UgZmlsZXMgd2l0aCAtLXVzZS1wcmVsb2FkLXBsdWdpbnMiKTsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFyYXcpIHsKICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gUEFUSC5yZXNvbHZlKGZpbGVuYW1lKTsKICAgICAgICAgICAgICAgIHZhciByYXcgPSBNb2R1bGVbInByZWxvYWRlZEltYWdlcyJdW2ZpbGVuYW1lXTsKICAgICAgICAgICAgICAgIGlmICghcmF3KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHJhdyA9PT0gbnVsbCkgTW9kdWxlLnByaW50RXJyKCJUcnlpbmcgdG8gcmV1c2UgcHJlbG9hZGVkIGltYWdlLCBidXQgZnJlZVByZWxvYWRlZE1lZGlhT25Vc2UgaXMgc2V0ISIpOwogICAgICAgICAgICAgICAgICAgIHdhcm5PbmNlKCJDYW5ub3QgZmluZCBwcmVsb2FkZWQgaW1hZ2UgIiArIGZpbGVuYW1lKTsKICAgICAgICAgICAgICAgICAgICB3YXJuT25jZSgiQ2Fubm90IGZpbmQgcHJlbG9hZGVkIGltYWdlICIgKyBmaWxlbmFtZSArICIuIENvbnNpZGVyIHVzaW5nIFNUQl9JTUFHRT0xIGlmIHlvdSB3YW50IHN5bmNocm9ub3VzIGltYWdlIGRlY29kaW5nIChzZWUgc2V0dGluZ3MuanMpLCBvciBwYWNrYWdlIGZpbGVzIHdpdGggLS11c2UtcHJlbG9hZC1wbHVnaW5zIik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoTW9kdWxlWyJmcmVlUHJlbG9hZGVkTWVkaWFPblVzZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXVtmaWxlbmFtZV0gPSBudWxsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHN1cmYgPSBTREwubWFrZVN1cmZhY2UocmF3LndpZHRoLCByYXcuaGVpZ2h0LCAwLCBmYWxzZSwgImxvYWQ6IiArIGZpbGVuYW1lKTsKICAgICAgICAgICAgdmFyIHN1cmZEYXRhID0gU0RMLnN1cmZhY2VzW3N1cmZdOwogICAgICAgICAgICBzdXJmRGF0YS5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gImNvcHkiOwogICAgICAgICAgICBpZiAoIXJhdy5yYXdEYXRhKSB7CiAgICAgICAgICAgICAgICBzdXJmRGF0YS5jdHguZHJhd0ltYWdlKHJhdywgMCwgMCwgcmF3LndpZHRoLCByYXcuaGVpZ2h0LCAwLCAwLCByYXcud2lkdGgsIHJhdy5oZWlnaHQpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW1hZ2VEYXRhID0gc3VyZkRhdGEuY3R4LmdldEltYWdlRGF0YSgwLCAwLCBzdXJmRGF0YS53aWR0aCwgc3VyZkRhdGEuaGVpZ2h0KTsKICAgICAgICAgICAgICAgIGlmIChyYXcuYnBwID09IDQpIHsKICAgICAgICAgICAgICAgICAgICBpbWFnZURhdGEuZGF0YS5zZXQoSEVBUFU4LnN1YmFycmF5KHJhdy5kYXRhLCByYXcuZGF0YSArIHJhdy5zaXplKSkKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmF3LmJwcCA9PSAzKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHBpeGVscyA9IHJhdy5zaXplIC8gMzsKICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGltYWdlRGF0YS5kYXRhOwogICAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VQdHIgPSByYXcuZGF0YTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzdFB0ciA9IDA7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwaXhlbHM7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2Rlc3RQdHIrK10gPSBIRUFQVThbc291cmNlUHRyKysgPj4gMF07CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbZGVzdFB0cisrXSA9IEhFQVBVOFtzb3VyY2VQdHIrKyA+PiAwXTsKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtkZXN0UHRyKytdID0gSEVBUFU4W3NvdXJjZVB0cisrID4+IDBdOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2Rlc3RQdHIrK10gPSAyNTUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJhdy5icHAgPT0gMikgewogICAgICAgICAgICAgICAgICAgIHZhciBwaXhlbHMgPSByYXcuc2l6ZTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGltYWdlRGF0YS5kYXRhOwogICAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VQdHIgPSByYXcuZGF0YTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzdFB0ciA9IDA7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwaXhlbHM7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ3JheSA9IEhFQVBVOFtzb3VyY2VQdHIrKyA+PiAwXTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFscGhhID0gSEVBUFU4W3NvdXJjZVB0cisrID4+IDBdOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2Rlc3RQdHIrK10gPSBncmF5OwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2Rlc3RQdHIrK10gPSBncmF5OwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2Rlc3RQdHIrK10gPSBncmF5OwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2Rlc3RQdHIrK10gPSBhbHBoYQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmF3LmJwcCA9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHBpeGVscyA9IHJhdy5zaXplOwogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZVB0ciA9IHJhdy5kYXRhOwogICAgICAgICAgICAgICAgICAgIHZhciBkZXN0UHRyID0gMDsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBpeGVsczsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IEhFQVBVOFtzb3VyY2VQdHIrKyA+PiAwXTsKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtkZXN0UHRyKytdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbZGVzdFB0cisrXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2Rlc3RQdHIrK10gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtkZXN0UHRyKytdID0gMjU1CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBNb2R1bGUucHJpbnRFcnIoImNhbm5vdCBoYW5kbGUgYnBwICIgKyByYXcuYnBwKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc3VyZkRhdGEuY3R4LnB1dEltYWdlRGF0YShpbWFnZURhdGEsIDAsIDApCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3VyZkRhdGEuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICJzb3VyY2Utb3ZlciI7CiAgICAgICAgICAgIF9TRExfTG9ja1N1cmZhY2Uoc3VyZik7CiAgICAgICAgICAgIHN1cmZEYXRhLmxvY2tlZC0tOwogICAgICAgICAgICBpZiAoU0RMLkdMKSB7CiAgICAgICAgICAgICAgICBzdXJmRGF0YS5jYW52YXMgPSBzdXJmRGF0YS5jdHggPSBudWxsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHN1cmYKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBjbGVhbnVwKCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX1NETF9SV0Zyb21GaWxlKF9uYW1lLCBtb2RlKSB7CiAgICAgICAgdmFyIGlkID0gU0RMLnJ3b3BzLmxlbmd0aDsKICAgICAgICB2YXIgbmFtZSA9IFBvaW50ZXJfc3RyaW5naWZ5KF9uYW1lKTsKICAgICAgICBTREwucndvcHMucHVzaCh7CiAgICAgICAgICAgIGZpbGVuYW1lOiBuYW1lLAogICAgICAgICAgICBtaW1ldHlwZTogQnJvd3Nlci5nZXRNaW1ldHlwZShuYW1lKQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBpZAogICAgfQoKICAgIGZ1bmN0aW9uIF9JTUdfTG9hZChmaWxlbmFtZSkgewogICAgICAgIHZhciByd29wcyA9IF9TRExfUldGcm9tRmlsZShmaWxlbmFtZSk7CiAgICAgICAgdmFyIHJlc3VsdCA9IF9JTUdfTG9hZF9SVyhyd29wcywgMSk7CiAgICAgICAgcmV0dXJuIHJlc3VsdAogICAgfQoKICAgIGZ1bmN0aW9uIF9TRExfVXBwZXJCbGl0U2NhbGVkKHNyYywgc3JjcmVjdCwgZHN0LCBkc3RyZWN0KSB7CiAgICAgICAgcmV0dXJuIFNETC5ibGl0U3VyZmFjZShzcmMsIHNyY3JlY3QsIGRzdCwgZHN0cmVjdCwgdHJ1ZSkKICAgIH0KCiAgICBmdW5jdGlvbiBfU0RMX1VwcGVyQmxpdChzcmMsIHNyY3JlY3QsIGRzdCwgZHN0cmVjdCkgewogICAgICAgIHJldHVybiBTREwuYmxpdFN1cmZhY2Uoc3JjLCBzcmNyZWN0LCBkc3QsIGRzdHJlY3QsIGZhbHNlKQogICAgfQoKICAgIGZ1bmN0aW9uIF9TRExfR2V0VGlja3MoKSB7CiAgICAgICAgcmV0dXJuIERhdGUubm93KCkgLSBTREwuc3RhcnRUaW1lIHwgMAogICAgfQogICAgdmFyIFNETCA9IHsKICAgICAgICBkZWZhdWx0czogewogICAgICAgICAgICB3aWR0aDogMzIwLAogICAgICAgICAgICBoZWlnaHQ6IDIwMCwKICAgICAgICAgICAgY29weU9uTG9jazogdHJ1ZSwKICAgICAgICAgICAgZGlzY2FyZE9uTG9jazogZmFsc2UsCiAgICAgICAgICAgIG9wYXF1ZUZyb250QnVmZmVyOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB2ZXJzaW9uOiBudWxsLAogICAgICAgIHN1cmZhY2VzOiB7fSwKICAgICAgICBjYW52YXNQb29sOiBbXSwKICAgICAgICBldmVudHM6IFtdLAogICAgICAgIGZvbnRzOiBbbnVsbF0sCiAgICAgICAgYXVkaW9zOiBbbnVsbF0sCiAgICAgICAgcndvcHM6IFtudWxsXSwKICAgICAgICBtdXNpYzogewogICAgICAgICAgICBhdWRpbzogbnVsbCwKICAgICAgICAgICAgdm9sdW1lOiAxCiAgICAgICAgfSwKICAgICAgICBtaXhlckZyZXF1ZW5jeTogMjIwNTAsCiAgICAgICAgbWl4ZXJGb3JtYXQ6IDMyNzg0LAogICAgICAgIG1peGVyTnVtQ2hhbm5lbHM6IDIsCiAgICAgICAgbWl4ZXJDaHVua1NpemU6IDEwMjQsCiAgICAgICAgY2hhbm5lbE1pbmltdW1OdW1iZXI6IDAsCiAgICAgICAgR0w6IGZhbHNlLAogICAgICAgIGdsQXR0cmlidXRlczogewogICAgICAgICAgICAwOiAzLAogICAgICAgICAgICAxOiAzLAogICAgICAgICAgICAyOiAyLAogICAgICAgICAgICAzOiAwLAogICAgICAgICAgICA0OiAwLAogICAgICAgICAgICA1OiAxLAogICAgICAgICAgICA2OiAxNiwKICAgICAgICAgICAgNzogMCwKICAgICAgICAgICAgODogMCwKICAgICAgICAgICAgOTogMCwKICAgICAgICAgICAgMTA6IDAsCiAgICAgICAgICAgIDExOiAwLAogICAgICAgICAgICAxMjogMCwKICAgICAgICAgICAgMTM6IDAsCiAgICAgICAgICAgIDE0OiAwLAogICAgICAgICAgICAxNTogMSwKICAgICAgICAgICAgMTY6IDAsCiAgICAgICAgICAgIDE3OiAwLAogICAgICAgICAgICAxODogMAogICAgICAgIH0sCiAgICAgICAga2V5Ym9hcmRTdGF0ZTogbnVsbCwKICAgICAgICBrZXlib2FyZE1hcDoge30sCiAgICAgICAgY2FuUmVxdWVzdEZ1bGxzY3JlZW46IGZhbHNlLAogICAgICAgIGlzUmVxdWVzdGluZ0Z1bGxzY3JlZW46IGZhbHNlLAogICAgICAgIHRleHRJbnB1dDogZmFsc2UsCiAgICAgICAgc3RhcnRUaW1lOiBudWxsLAogICAgICAgIGluaXRGbGFnczogMCwKICAgICAgICBidXR0b25TdGF0ZTogMCwKICAgICAgICBtb2RTdGF0ZTogMCwKICAgICAgICBET01CdXR0b25zOiBbMCwgMCwgMF0sCiAgICAgICAgRE9NRXZlbnRUb1NETEV2ZW50OiB7fSwKICAgICAgICBUT1VDSF9ERUZBVUxUX0lEOiAwLAogICAgICAgIGV2ZW50SGFuZGxlcjogbnVsbCwKICAgICAgICBldmVudEhhbmRsZXJDb250ZXh0OiBudWxsLAogICAgICAgIGV2ZW50SGFuZGxlclRlbXA6IDAsCiAgICAgICAga2V5Q29kZXM6IHsKICAgICAgICAgICAgMTY6IDEyNDksCiAgICAgICAgICAgIDE3OiAxMjQ4LAogICAgICAgICAgICAxODogMTI1MCwKICAgICAgICAgICAgMjA6IDEwODEsCiAgICAgICAgICAgIDMzOiAxMDk5LAogICAgICAgICAgICAzNDogMTEwMiwKICAgICAgICAgICAgMzU6IDExMDEsCiAgICAgICAgICAgIDM2OiAxMDk4LAogICAgICAgICAgICAzNzogMTEwNCwKICAgICAgICAgICAgMzg6IDExMDYsCiAgICAgICAgICAgIDM5OiAxMTAzLAogICAgICAgICAgICA0MDogMTEwNSwKICAgICAgICAgICAgNDQ6IDMxNiwKICAgICAgICAgICAgNDU6IDEwOTcsCiAgICAgICAgICAgIDQ2OiAxMjcsCiAgICAgICAgICAgIDkxOiAxMjUxLAogICAgICAgICAgICA5MzogMTEyNSwKICAgICAgICAgICAgOTY6IDExMjIsCiAgICAgICAgICAgIDk3OiAxMTEzLAogICAgICAgICAgICA5ODogMTExNCwKICAgICAgICAgICAgOTk6IDExMTUsCiAgICAgICAgICAgIDEwMDogMTExNiwKICAgICAgICAgICAgMTAxOiAxMTE3LAogICAgICAgICAgICAxMDI6IDExMTgsCiAgICAgICAgICAgIDEwMzogMTExOSwKICAgICAgICAgICAgMTA0OiAxMTIwLAogICAgICAgICAgICAxMDU6IDExMjEsCiAgICAgICAgICAgIDEwNjogMTEwOSwKICAgICAgICAgICAgMTA3OiAxMTExLAogICAgICAgICAgICAxMDk6IDExMTAsCiAgICAgICAgICAgIDExMDogMTEyMywKICAgICAgICAgICAgMTExOiAxMTA4LAogICAgICAgICAgICAxMTI6IDEwODIsCiAgICAgICAgICAgIDExMzogMTA4MywKICAgICAgICAgICAgMTE0OiAxMDg0LAogICAgICAgICAgICAxMTU6IDEwODUsCiAgICAgICAgICAgIDExNjogMTA4NiwKICAgICAgICAgICAgMTE3OiAxMDg3LAogICAgICAgICAgICAxMTg6IDEwODgsCiAgICAgICAgICAgIDExOTogMTA4OSwKICAgICAgICAgICAgMTIwOiAxMDkwLAogICAgICAgICAgICAxMjE6IDEwOTEsCiAgICAgICAgICAgIDEyMjogMTA5MiwKICAgICAgICAgICAgMTIzOiAxMDkzLAogICAgICAgICAgICAxMjQ6IDExMjgsCiAgICAgICAgICAgIDEyNTogMTEyOSwKICAgICAgICAgICAgMTI2OiAxMTMwLAogICAgICAgICAgICAxMjc6IDExMzEsCiAgICAgICAgICAgIDEyODogMTEzMiwKICAgICAgICAgICAgMTI5OiAxMTMzLAogICAgICAgICAgICAxMzA6IDExMzQsCiAgICAgICAgICAgIDEzMTogMTEzNSwKICAgICAgICAgICAgMTMyOiAxMTM2LAogICAgICAgICAgICAxMzM6IDExMzcsCiAgICAgICAgICAgIDEzNDogMTEzOCwKICAgICAgICAgICAgMTM1OiAxMTM5LAogICAgICAgICAgICAxNDQ6IDExMDcsCiAgICAgICAgICAgIDE2MDogOTQsCiAgICAgICAgICAgIDE2MTogMzMsCiAgICAgICAgICAgIDE2MjogMzQsCiAgICAgICAgICAgIDE2MzogMzUsCiAgICAgICAgICAgIDE2NDogMzYsCiAgICAgICAgICAgIDE2NTogMzcsCiAgICAgICAgICAgIDE2NjogMzgsCiAgICAgICAgICAgIDE2NzogOTUsCiAgICAgICAgICAgIDE2ODogNDAsCiAgICAgICAgICAgIDE2OTogNDEsCiAgICAgICAgICAgIDE3MDogNDIsCiAgICAgICAgICAgIDE3MTogNDMsCiAgICAgICAgICAgIDE3MjogMTI0LAogICAgICAgICAgICAxNzM6IDQ1LAogICAgICAgICAgICAxNzQ6IDEyMywKICAgICAgICAgICAgMTc1OiAxMjUsCiAgICAgICAgICAgIDE3NjogMTI2LAogICAgICAgICAgICAxODE6IDEyNywKICAgICAgICAgICAgMTgyOiAxMjksCiAgICAgICAgICAgIDE4MzogMTI4LAogICAgICAgICAgICAxODg6IDQ0LAogICAgICAgICAgICAxOTA6IDQ2LAogICAgICAgICAgICAxOTE6IDQ3LAogICAgICAgICAgICAxOTI6IDk2LAogICAgICAgICAgICAyMTk6IDkxLAogICAgICAgICAgICAyMjA6IDkyLAogICAgICAgICAgICAyMjE6IDkzLAogICAgICAgICAgICAyMjI6IDM5LAogICAgICAgICAgICAyMjQ6IDEyNTEKICAgICAgICB9LAogICAgICAgIHNjYW5Db2RlczogewogICAgICAgICAgICA4OiA0MiwKICAgICAgICAgICAgOTogNDMsCiAgICAgICAgICAgIDEzOiA0MCwKICAgICAgICAgICAgMjc6IDQxLAogICAgICAgICAgICAzMjogNDQsCiAgICAgICAgICAgIDM1OiAyMDQsCiAgICAgICAgICAgIDM5OiA1MywKICAgICAgICAgICAgNDQ6IDU0LAogICAgICAgICAgICA0NjogNTUsCiAgICAgICAgICAgIDQ3OiA1NiwKICAgICAgICAgICAgNDg6IDM5LAogICAgICAgICAgICA0OTogMzAsCiAgICAgICAgICAgIDUwOiAzMSwKICAgICAgICAgICAgNTE6IDMyLAogICAgICAgICAgICA1MjogMzMsCiAgICAgICAgICAgIDUzOiAzNCwKICAgICAgICAgICAgNTQ6IDM1LAogICAgICAgICAgICA1NTogMzYsCiAgICAgICAgICAgIDU2OiAzNywKICAgICAgICAgICAgNTc6IDM4LAogICAgICAgICAgICA1ODogMjAzLAogICAgICAgICAgICA1OTogNTEsCiAgICAgICAgICAgIDYxOiA0NiwKICAgICAgICAgICAgOTE6IDQ3LAogICAgICAgICAgICA5MjogNDksCiAgICAgICAgICAgIDkzOiA0OCwKICAgICAgICAgICAgOTY6IDUyLAogICAgICAgICAgICA5NzogNCwKICAgICAgICAgICAgOTg6IDUsCiAgICAgICAgICAgIDk5OiA2LAogICAgICAgICAgICAxMDA6IDcsCiAgICAgICAgICAgIDEwMTogOCwKICAgICAgICAgICAgMTAyOiA5LAogICAgICAgICAgICAxMDM6IDEwLAogICAgICAgICAgICAxMDQ6IDExLAogICAgICAgICAgICAxMDU6IDEyLAogICAgICAgICAgICAxMDY6IDEzLAogICAgICAgICAgICAxMDc6IDE0LAogICAgICAgICAgICAxMDg6IDE1LAogICAgICAgICAgICAxMDk6IDE2LAogICAgICAgICAgICAxMTA6IDE3LAogICAgICAgICAgICAxMTE6IDE4LAogICAgICAgICAgICAxMTI6IDE5LAogICAgICAgICAgICAxMTM6IDIwLAogICAgICAgICAgICAxMTQ6IDIxLAogICAgICAgICAgICAxMTU6IDIyLAogICAgICAgICAgICAxMTY6IDIzLAogICAgICAgICAgICAxMTc6IDI0LAogICAgICAgICAgICAxMTg6IDI1LAogICAgICAgICAgICAxMTk6IDI2LAogICAgICAgICAgICAxMjA6IDI3LAogICAgICAgICAgICAxMjE6IDI4LAogICAgICAgICAgICAxMjI6IDI5LAogICAgICAgICAgICAxMjc6IDc2LAogICAgICAgICAgICAzMDU6IDIyNCwKICAgICAgICAgICAgMzA4OiAyMjYsCiAgICAgICAgICAgIDMxNjogNzAKICAgICAgICB9LAogICAgICAgIGxvYWRSZWN0OiAoZnVuY3Rpb24ocmVjdCkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgeDogSEVBUDMyW3JlY3QgKyAwID4+IDJdLAogICAgICAgICAgICAgICAgeTogSEVBUDMyW3JlY3QgKyA0ID4+IDJdLAogICAgICAgICAgICAgICAgdzogSEVBUDMyW3JlY3QgKyA4ID4+IDJdLAogICAgICAgICAgICAgICAgaDogSEVBUDMyW3JlY3QgKyAxMiA+PiAyXQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgdXBkYXRlUmVjdDogKGZ1bmN0aW9uKHJlY3QsIHIpIHsKICAgICAgICAgICAgSEVBUDMyW3JlY3QgPj4gMl0gPSByLng7CiAgICAgICAgICAgIEhFQVAzMltyZWN0ICsgNCA+PiAyXSA9IHIueTsKICAgICAgICAgICAgSEVBUDMyW3JlY3QgKyA4ID4+IDJdID0gci53OwogICAgICAgICAgICBIRUFQMzJbcmVjdCArIDEyID4+IDJdID0gci5oCiAgICAgICAgfSksCiAgICAgICAgaW50ZXJzZWN0aW9uT2ZSZWN0czogKGZ1bmN0aW9uKGZpcnN0LCBzZWNvbmQpIHsKICAgICAgICAgICAgdmFyIGxlZnRYID0gTWF0aC5tYXgoZmlyc3QueCwgc2Vjb25kLngpOwogICAgICAgICAgICB2YXIgbGVmdFkgPSBNYXRoLm1heChmaXJzdC55LCBzZWNvbmQueSk7CiAgICAgICAgICAgIHZhciByaWdodFggPSBNYXRoLm1pbihmaXJzdC54ICsgZmlyc3Qudywgc2Vjb25kLnggKyBzZWNvbmQudyk7CiAgICAgICAgICAgIHZhciByaWdodFkgPSBNYXRoLm1pbihmaXJzdC55ICsgZmlyc3QuaCwgc2Vjb25kLnkgKyBzZWNvbmQuaCk7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICB4OiBsZWZ0WCwKICAgICAgICAgICAgICAgIHk6IGxlZnRZLAogICAgICAgICAgICAgICAgdzogTWF0aC5tYXgobGVmdFgsIHJpZ2h0WCkgLSBsZWZ0WCwKICAgICAgICAgICAgICAgIGg6IE1hdGgubWF4KGxlZnRZLCByaWdodFkpIC0gbGVmdFkKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIGNoZWNrUGl4ZWxGb3JtYXQ6IChmdW5jdGlvbihmbXQpIHt9KSwKICAgICAgICBsb2FkQ29sb3JUb0NTU1JHQjogKGZ1bmN0aW9uKGNvbG9yKSB7CiAgICAgICAgICAgIHZhciByZ2JhID0gSEVBUDMyW2NvbG9yID4+IDJdOwogICAgICAgICAgICByZXR1cm4gInJnYigiICsgKHJnYmEgJiAyNTUpICsgIiwiICsgKHJnYmEgPj4gOCAmIDI1NSkgKyAiLCIgKyAocmdiYSA+PiAxNiAmIDI1NSkgKyAiKSIKICAgICAgICB9KSwKICAgICAgICBsb2FkQ29sb3JUb0NTU1JHQkE6IChmdW5jdGlvbihjb2xvcikgewogICAgICAgICAgICB2YXIgcmdiYSA9IEhFQVAzMltjb2xvciA+PiAyXTsKICAgICAgICAgICAgcmV0dXJuICJyZ2JhKCIgKyAocmdiYSAmIDI1NSkgKyAiLCIgKyAocmdiYSA+PiA4ICYgMjU1KSArICIsIiArIChyZ2JhID4+IDE2ICYgMjU1KSArICIsIiArIChyZ2JhID4+IDI0ICYgMjU1KSAvIDI1NSArICIpIgogICAgICAgIH0pLAogICAgICAgIHRyYW5zbGF0ZUNvbG9yVG9DU1NSR0JBOiAoZnVuY3Rpb24ocmdiYSkgewogICAgICAgICAgICByZXR1cm4gInJnYmEoIiArIChyZ2JhICYgMjU1KSArICIsIiArIChyZ2JhID4+IDggJiAyNTUpICsgIiwiICsgKHJnYmEgPj4gMTYgJiAyNTUpICsgIiwiICsgKHJnYmEgPj4+IDI0KSAvIDI1NSArICIpIgogICAgICAgIH0pLAogICAgICAgIHRyYW5zbGF0ZVJHQkFUb0NTU1JHQkE6IChmdW5jdGlvbihyLCBnLCBiLCBhKSB7CiAgICAgICAgICAgIHJldHVybiAicmdiYSgiICsgKHIgJiAyNTUpICsgIiwiICsgKGcgJiAyNTUpICsgIiwiICsgKGIgJiAyNTUpICsgIiwiICsgKGEgJiAyNTUpIC8gMjU1ICsgIikiCiAgICAgICAgfSksCiAgICAgICAgdHJhbnNsYXRlUkdCQVRvQ29sb3I6IChmdW5jdGlvbihyLCBnLCBiLCBhKSB7CiAgICAgICAgICAgIHJldHVybiByIHwgZyA8PCA4IHwgYiA8PCAxNiB8IGEgPDwgMjQKICAgICAgICB9KSwKICAgICAgICBtYWtlU3VyZmFjZTogKGZ1bmN0aW9uKHdpZHRoLCBoZWlnaHQsIGZsYWdzLCB1c2VQYWdlQ2FudmFzLCBzb3VyY2UsIHJtYXNrLCBnbWFzaywgYm1hc2ssIGFtYXNrKSB7CiAgICAgICAgICAgIGZsYWdzID0gZmxhZ3MgfHwgMDsKICAgICAgICAgICAgdmFyIGlzX1NETF9IV1NVUkZBQ0UgPSBmbGFncyAmIDE7CiAgICAgICAgICAgIHZhciBpc19TRExfSFdQQUxFVFRFID0gZmxhZ3MgJiAyMDk3MTUyOwogICAgICAgICAgICB2YXIgaXNfU0RMX09QRU5HTCA9IGZsYWdzICYgNjcxMDg4NjQ7CiAgICAgICAgICAgIHZhciBzdXJmID0gX21hbGxvYyg2MCk7CiAgICAgICAgICAgIHZhciBwaXhlbEZvcm1hdCA9IF9tYWxsb2MoNDQpOwogICAgICAgICAgICB2YXIgYnBwID0gaXNfU0RMX0hXUEFMRVRURSA/IDEgOiA0OwogICAgICAgICAgICB2YXIgYnVmZmVyID0gMDsKICAgICAgICAgICAgaWYgKCFpc19TRExfSFdTVVJGQUNFICYmICFpc19TRExfT1BFTkdMKSB7CiAgICAgICAgICAgICAgICBidWZmZXIgPSBfbWFsbG9jKHdpZHRoICogaGVpZ2h0ICogNCkKICAgICAgICAgICAgfQogICAgICAgICAgICBIRUFQMzJbc3VyZiA+PiAyXSA9IGZsYWdzOwogICAgICAgICAgICBIRUFQMzJbc3VyZiArIDQgPj4gMl0gPSBwaXhlbEZvcm1hdDsKICAgICAgICAgICAgSEVBUDMyW3N1cmYgKyA4ID4+IDJdID0gd2lkdGg7CiAgICAgICAgICAgIEhFQVAzMltzdXJmICsgMTIgPj4gMl0gPSBoZWlnaHQ7CiAgICAgICAgICAgIEhFQVAzMltzdXJmICsgMTYgPj4gMl0gPSB3aWR0aCAqIGJwcDsKICAgICAgICAgICAgSEVBUDMyW3N1cmYgKyAyMCA+PiAyXSA9IGJ1ZmZlcjsKICAgICAgICAgICAgSEVBUDMyW3N1cmYgKyAzNiA+PiAyXSA9IDA7CiAgICAgICAgICAgIEhFQVAzMltzdXJmICsgNDAgPj4gMl0gPSAwOwogICAgICAgICAgICBIRUFQMzJbc3VyZiArIDQ0ID4+IDJdID0gTW9kdWxlWyJjYW52YXMiXS53aWR0aDsKICAgICAgICAgICAgSEVBUDMyW3N1cmYgKyA0OCA+PiAyXSA9IE1vZHVsZVsiY2FudmFzIl0uaGVpZ2h0OwogICAgICAgICAgICBIRUFQMzJbc3VyZiArIDU2ID4+IDJdID0gMTsKICAgICAgICAgICAgSEVBUDMyW3BpeGVsRm9ybWF0ID4+IDJdID0gLTIwNDIyMjQ2MzY7CiAgICAgICAgICAgIEhFQVAzMltwaXhlbEZvcm1hdCArIDQgPj4gMl0gPSAwOwogICAgICAgICAgICBIRUFQOFtwaXhlbEZvcm1hdCArIDggPj4gMF0gPSBicHAgKiA4OwogICAgICAgICAgICBIRUFQOFtwaXhlbEZvcm1hdCArIDkgPj4gMF0gPSBicHA7CiAgICAgICAgICAgIEhFQVAzMltwaXhlbEZvcm1hdCArIDEyID4+IDJdID0gcm1hc2sgfHwgMjU1OwogICAgICAgICAgICBIRUFQMzJbcGl4ZWxGb3JtYXQgKyAxNiA+PiAyXSA9IGdtYXNrIHx8IDY1MjgwOwogICAgICAgICAgICBIRUFQMzJbcGl4ZWxGb3JtYXQgKyAyMCA+PiAyXSA9IGJtYXNrIHx8IDE2NzExNjgwOwogICAgICAgICAgICBIRUFQMzJbcGl4ZWxGb3JtYXQgKyAyNCA+PiAyXSA9IGFtYXNrIHx8IDQyNzgxOTAwODA7CiAgICAgICAgICAgIFNETC5HTCA9IFNETC5HTCB8fCBpc19TRExfT1BFTkdMOwogICAgICAgICAgICB2YXIgY2FudmFzOwogICAgICAgICAgICBpZiAoIXVzZVBhZ2VDYW52YXMpIHsKICAgICAgICAgICAgICAgIGlmIChTREwuY2FudmFzUG9vbC5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgY2FudmFzID0gU0RMLmNhbnZhc1Bvb2wucG9wKCkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoOwogICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY2FudmFzID0gTW9kdWxlWyJjYW52YXMiXQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzID0gewogICAgICAgICAgICAgICAgYW50aWFsaWFzOiBTREwuZ2xBdHRyaWJ1dGVzWzEzXSAhPSAwICYmIFNETC5nbEF0dHJpYnV0ZXNbMTRdID4gMSwKICAgICAgICAgICAgICAgIGRlcHRoOiBTREwuZ2xBdHRyaWJ1dGVzWzZdID4gMCwKICAgICAgICAgICAgICAgIHN0ZW5jaWw6IFNETC5nbEF0dHJpYnV0ZXNbN10gPiAwLAogICAgICAgICAgICAgICAgYWxwaGE6IFNETC5nbEF0dHJpYnV0ZXNbM10gPiAwCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHZhciBjdHggPSBCcm93c2VyLmNyZWF0ZUNvbnRleHQoY2FudmFzLCBpc19TRExfT1BFTkdMLCB1c2VQYWdlQ2FudmFzLCB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKICAgICAgICAgICAgU0RMLnN1cmZhY2VzW3N1cmZdID0gewogICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoLAogICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQsCiAgICAgICAgICAgICAgICBjYW52YXM6IGNhbnZhcywKICAgICAgICAgICAgICAgIGN0eDogY3R4LAogICAgICAgICAgICAgICAgc3VyZjogc3VyZiwKICAgICAgICAgICAgICAgIGJ1ZmZlcjogYnVmZmVyLAogICAgICAgICAgICAgICAgcGl4ZWxGb3JtYXQ6IHBpeGVsRm9ybWF0LAogICAgICAgICAgICAgICAgYWxwaGE6IDI1NSwKICAgICAgICAgICAgICAgIGZsYWdzOiBmbGFncywKICAgICAgICAgICAgICAgIGxvY2tlZDogMCwKICAgICAgICAgICAgICAgIHVzZVBhZ2VDYW52YXM6IHVzZVBhZ2VDYW52YXMsCiAgICAgICAgICAgICAgICBzb3VyY2U6IHNvdXJjZSwKICAgICAgICAgICAgICAgIGlzRmxhZ1NldDogKGZ1bmN0aW9uKGZsYWcpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmxhZ3MgJiBmbGFnCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9OwogICAgICAgICAgICByZXR1cm4gc3VyZgogICAgICAgIH0pLAogICAgICAgIGNvcHlJbmRleGVkQ29sb3JEYXRhOiAoZnVuY3Rpb24oc3VyZkRhdGEsIHJYLCByWSwgclcsIHJIKSB7CiAgICAgICAgICAgIGlmICghc3VyZkRhdGEuY29sb3JzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgZnVsbFdpZHRoID0gTW9kdWxlWyJjYW52YXMiXS53aWR0aDsKICAgICAgICAgICAgdmFyIGZ1bGxIZWlnaHQgPSBNb2R1bGVbImNhbnZhcyJdLmhlaWdodDsKICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IHJYIHx8IDA7CiAgICAgICAgICAgIHZhciBzdGFydFkgPSByWSB8fCAwOwogICAgICAgICAgICB2YXIgZW5kWCA9IChyVyB8fCBmdWxsV2lkdGggLSBzdGFydFgpICsgc3RhcnRYOwogICAgICAgICAgICB2YXIgZW5kWSA9IChySCB8fCBmdWxsSGVpZ2h0IC0gc3RhcnRZKSArIHN0YXJ0WTsKICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IHN1cmZEYXRhLmJ1ZmZlcjsKICAgICAgICAgICAgaWYgKCFzdXJmRGF0YS5pbWFnZS5kYXRhMzIpIHsKICAgICAgICAgICAgICAgIHN1cmZEYXRhLmltYWdlLmRhdGEzMiA9IG5ldyBVaW50MzJBcnJheShzdXJmRGF0YS5pbWFnZS5kYXRhLmJ1ZmZlcikKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgZGF0YTMyID0gc3VyZkRhdGEuaW1hZ2UuZGF0YTMyOwogICAgICAgICAgICB2YXIgY29sb3JzMzIgPSBzdXJmRGF0YS5jb2xvcnMzMjsKICAgICAgICAgICAgZm9yICh2YXIgeSA9IHN0YXJ0WTsgeSA8IGVuZFk7ICsreSkgewogICAgICAgICAgICAgICAgdmFyIGJhc2UgPSB5ICogZnVsbFdpZHRoOwogICAgICAgICAgICAgICAgZm9yICh2YXIgeCA9IHN0YXJ0WDsgeCA8IGVuZFg7ICsreCkgewogICAgICAgICAgICAgICAgICAgIGRhdGEzMltiYXNlICsgeF0gPSBjb2xvcnMzMltIRUFQVThbYnVmZmVyICsgYmFzZSArIHggPj4gMF1dCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBmcmVlU3VyZmFjZTogKGZ1bmN0aW9uKHN1cmYpIHsKICAgICAgICAgICAgdmFyIHJlZmNvdW50UG9pbnRlciA9IHN1cmYgKyA1NjsKICAgICAgICAgICAgdmFyIHJlZmNvdW50ID0gSEVBUDMyW3JlZmNvdW50UG9pbnRlciA+PiAyXTsKICAgICAgICAgICAgaWYgKHJlZmNvdW50ID4gMSkgewogICAgICAgICAgICAgICAgSEVBUDMyW3JlZmNvdW50UG9pbnRlciA+PiAyXSA9IHJlZmNvdW50IC0gMTsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpbmZvID0gU0RMLnN1cmZhY2VzW3N1cmZdOwogICAgICAgICAgICBpZiAoIWluZm8udXNlUGFnZUNhbnZhcyAmJiBpbmZvLmNhbnZhcykgU0RMLmNhbnZhc1Bvb2wucHVzaChpbmZvLmNhbnZhcyk7CiAgICAgICAgICAgIGlmIChpbmZvLmJ1ZmZlcikgX2ZyZWUoaW5mby5idWZmZXIpOwogICAgICAgICAgICBfZnJlZShpbmZvLnBpeGVsRm9ybWF0KTsKICAgICAgICAgICAgX2ZyZWUoc3VyZik7CiAgICAgICAgICAgIFNETC5zdXJmYWNlc1tzdXJmXSA9IG51bGw7CiAgICAgICAgICAgIGlmIChzdXJmID09PSBTREwuc2NyZWVuKSB7CiAgICAgICAgICAgICAgICBTREwuc2NyZWVuID0gbnVsbAogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgYmxpdFN1cmZhY2VfX2RlcHM6IFsiU0RMX0xvY2tTdXJmYWNlIl0sCiAgICAgICAgYmxpdFN1cmZhY2U6IChmdW5jdGlvbihzcmMsIHNyY3JlY3QsIGRzdCwgZHN0cmVjdCwgc2NhbGUpIHsKICAgICAgICAgICAgdmFyIHNyY0RhdGEgPSBTREwuc3VyZmFjZXNbc3JjXTsKICAgICAgICAgICAgdmFyIGRzdERhdGEgPSBTREwuc3VyZmFjZXNbZHN0XTsKICAgICAgICAgICAgdmFyIHNyLCBkcjsKICAgICAgICAgICAgaWYgKHNyY3JlY3QpIHsKICAgICAgICAgICAgICAgIHNyID0gU0RMLmxvYWRSZWN0KHNyY3JlY3QpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzciA9IHsKICAgICAgICAgICAgICAgICAgICB4OiAwLAogICAgICAgICAgICAgICAgICAgIHk6IDAsCiAgICAgICAgICAgICAgICAgICAgdzogc3JjRGF0YS53aWR0aCwKICAgICAgICAgICAgICAgICAgICBoOiBzcmNEYXRhLmhlaWdodAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkc3RyZWN0KSB7CiAgICAgICAgICAgICAgICBkciA9IFNETC5sb2FkUmVjdChkc3RyZWN0KQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZHIgPSB7CiAgICAgICAgICAgICAgICAgICAgeDogMCwKICAgICAgICAgICAgICAgICAgICB5OiAwLAogICAgICAgICAgICAgICAgICAgIHc6IHNyY0RhdGEud2lkdGgsCiAgICAgICAgICAgICAgICAgICAgaDogc3JjRGF0YS5oZWlnaHQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZHN0RGF0YS5jbGlwUmVjdCkgewogICAgICAgICAgICAgICAgdmFyIHdpZHRoU2NhbGUgPSAhc2NhbGUgfHwgc3IudyA9PT0gMCA/IDEgOiBzci53IC8gZHIudzsKICAgICAgICAgICAgICAgIHZhciBoZWlnaHRTY2FsZSA9ICFzY2FsZSB8fCBzci5oID09PSAwID8gMSA6IHNyLmggLyBkci5oOwogICAgICAgICAgICAgICAgZHIgPSBTREwuaW50ZXJzZWN0aW9uT2ZSZWN0cyhkc3REYXRhLmNsaXBSZWN0LCBkcik7CiAgICAgICAgICAgICAgICBzci53ID0gZHIudyAqIHdpZHRoU2NhbGU7CiAgICAgICAgICAgICAgICBzci5oID0gZHIuaCAqIGhlaWdodFNjYWxlOwogICAgICAgICAgICAgICAgaWYgKGRzdHJlY3QpIHsKICAgICAgICAgICAgICAgICAgICBTREwudXBkYXRlUmVjdChkc3RyZWN0LCBkcikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgYmxpdHcsIGJsaXRoOwogICAgICAgICAgICBpZiAoc2NhbGUpIHsKICAgICAgICAgICAgICAgIGJsaXR3ID0gZHIudzsKICAgICAgICAgICAgICAgIGJsaXRoID0gZHIuaAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgYmxpdHcgPSBzci53OwogICAgICAgICAgICAgICAgYmxpdGggPSBzci5oCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNyLncgPT09IDAgfHwgc3IuaCA9PT0gMCB8fCBibGl0dyA9PT0gMCB8fCBibGl0aCA9PT0gMCkgewogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgb2xkQWxwaGEgPSBkc3REYXRhLmN0eC5nbG9iYWxBbHBoYTsKICAgICAgICAgICAgZHN0RGF0YS5jdHguZ2xvYmFsQWxwaGEgPSBzcmNEYXRhLmFscGhhIC8gMjU1OwogICAgICAgICAgICBkc3REYXRhLmN0eC5kcmF3SW1hZ2Uoc3JjRGF0YS5jYW52YXMsIHNyLngsIHNyLnksIHNyLncsIHNyLmgsIGRyLngsIGRyLnksIGJsaXR3LCBibGl0aCk7CiAgICAgICAgICAgIGRzdERhdGEuY3R4Lmdsb2JhbEFscGhhID0gb2xkQWxwaGE7CiAgICAgICAgICAgIGlmIChkc3QgIT0gU0RMLnNjcmVlbikgewogICAgICAgICAgICAgICAgd2Fybk9uY2UoIldBUk5JTkc6IGNvcHlpbmcgY2FudmFzIGRhdGEgdG8gbWVtb3J5IGZvciBjb21wYXRpYmlsaXR5Iik7CiAgICAgICAgICAgICAgICBfU0RMX0xvY2tTdXJmYWNlKGRzdCk7CiAgICAgICAgICAgICAgICBkc3REYXRhLmxvY2tlZC0tCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9KSwKICAgICAgICBkb3duRmluZ2Vyczoge30sCiAgICAgICAgc2F2ZWRLZXlkb3duOiBudWxsLAogICAgICAgIHJlY2VpdmVFdmVudDogKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgIGZ1bmN0aW9uIHVucHJlc3NBbGxQcmVzc2VkS2V5cygpIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIGNvZGUgaW4gU0RMLmtleWJvYXJkTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgU0RMLmV2ZW50cy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogImtleXVwIiwKICAgICAgICAgICAgICAgICAgICAgICAga2V5Q29kZTogU0RMLmtleWJvYXJkTWFwW2NvZGVdCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgInRvdWNoc3RhcnQiOgogICAgICAgICAgICAgICAgY2FzZSAidG91Y2htb3ZlIjogewogICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRvdWNoZXMgPSBbXTsKICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gInRvdWNoc3RhcnQiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnQudG91Y2hlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRvdWNoID0gZXZlbnQudG91Y2hlc1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTREwuZG93bkZpbmdlcnNbdG91Y2guaWRlbnRpZmllcl0gIT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNETC5kb3duRmluZ2Vyc1t0b3VjaC5pZGVudGlmaWVyXSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG91Y2hlcy5wdXNoKHRvdWNoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdG91Y2hlcyA9IGV2ZW50LnRvdWNoZXMKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdmFyIGZpcnN0VG91Y2ggPSB0b3VjaGVzWzBdOwogICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdFRvdWNoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09ICJ0b3VjaHN0YXJ0IikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0RMLkRPTUJ1dHRvbnNbMF0gPSAxCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1vdXNlRXZlbnRUeXBlOwogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRvdWNoc3RhcnQiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRXZlbnRUeXBlID0gIm1vdXNlZG93biI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0b3VjaG1vdmUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRXZlbnRUeXBlID0gIm1vdXNlbW92ZSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgbW91c2VFdmVudCA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IG1vdXNlRXZlbnRUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVg6IGZpcnN0VG91Y2guY2xpZW50WCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VZOiBmaXJzdFRvdWNoLmNsaWVudFkKICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgU0RMLmV2ZW50cy5wdXNoKG1vdXNlRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG91Y2hlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG91Y2ggPSB0b3VjaGVzW2ldOwogICAgICAgICAgICAgICAgICAgICAgICBTREwuZXZlbnRzLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZXZlbnQudHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoOiB0b3VjaAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAidG91Y2hlbmQiOiB7CiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHZhciB0b3VjaCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzW2ldOwogICAgICAgICAgICAgICAgICAgIGlmIChTREwuZG93bkZpbmdlcnNbdG91Y2guaWRlbnRpZmllcl0gPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIFNETC5kb3duRmluZ2Vyc1t0b3VjaC5pZGVudGlmaWVyXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBtb3VzZUV2ZW50ID0gewogICAgICAgICAgICAgICAgICAgIHR5cGU6ICJtb3VzZXVwIiwKICAgICAgICAgICAgICAgICAgICBidXR0b246IDAsCiAgICAgICAgICAgICAgICAgICAgcGFnZVg6IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFgsCiAgICAgICAgICAgICAgICAgICAgcGFnZVk6IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICBTREwuRE9NQnV0dG9uc1swXSA9IDA7CiAgICAgICAgICAgICAgICBTREwuZXZlbnRzLnB1c2gobW91c2VFdmVudCk7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRvdWNoID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbaV07CiAgICAgICAgICAgICAgICAgICAgU0RMLmV2ZW50cy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogInRvdWNoZW5kIiwKICAgICAgICAgICAgICAgICAgICAgICAgdG91Y2g6IHRvdWNoCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgIkRPTU1vdXNlU2Nyb2xsIjoKICAgICAgICAgICAgY2FzZSAibW91c2V3aGVlbCI6CiAgICAgICAgICAgIGNhc2UgIndoZWVsIjoKICAgICAgICAgICAgICAgIHZhciBkZWx0YSA9IC1Ccm93c2VyLmdldE1vdXNlV2hlZWxEZWx0YShldmVudCk7CiAgICAgICAgICAgICAgICBkZWx0YSA9IGRlbHRhID09IDAgPyAwIDogZGVsdGEgPiAwID8gTWF0aC5tYXgoZGVsdGEsIDEpIDogTWF0aC5taW4oZGVsdGEsIC0xKTsKICAgICAgICAgICAgICAgIHZhciBidXR0b24gPSBkZWx0YSA+IDAgPyAzIDogNDsKICAgICAgICAgICAgICAgIFNETC5ldmVudHMucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgdHlwZTogIm1vdXNlZG93biIsCiAgICAgICAgICAgICAgICAgICAgYnV0dG9uOiBidXR0b24sCiAgICAgICAgICAgICAgICAgICAgcGFnZVg6IGV2ZW50LnBhZ2VYLAogICAgICAgICAgICAgICAgICAgIHBhZ2VZOiBldmVudC5wYWdlWQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBTREwuZXZlbnRzLnB1c2goewogICAgICAgICAgICAgICAgICAgIHR5cGU6ICJtb3VzZXVwIiwKICAgICAgICAgICAgICAgICAgICBidXR0b246IGJ1dHRvbiwKICAgICAgICAgICAgICAgICAgICBwYWdlWDogZXZlbnQucGFnZVgsCiAgICAgICAgICAgICAgICAgICAgcGFnZVk6IGV2ZW50LnBhZ2VZCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIFNETC5ldmVudHMucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgdHlwZTogIndoZWVsIiwKICAgICAgICAgICAgICAgICAgICBkZWx0YVg6IDAsCiAgICAgICAgICAgICAgICAgICAgZGVsdGFZOiBkZWx0YQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1vdXNlbW92ZSI6CiAgICAgICAgICAgICAgICBpZiAoU0RMLkRPTUJ1dHRvbnNbMF0gPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICBTREwuZXZlbnRzLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAidG91Y2htb3ZlIiwKICAgICAgICAgICAgICAgICAgICAgICAgdG91Y2g6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VJRDogLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlWDogZXZlbnQucGFnZVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlWTogZXZlbnQucGFnZVkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoQnJvd3Nlci5wb2ludGVyTG9jaykgewogICAgICAgICAgICAgICAgICAgIGlmICgibW96TW92ZW1lbnRYIiBpbiBldmVudCkgewogICAgICAgICAgICAgICAgICAgICAgICBldmVudFsibW92ZW1lbnRYIl0gPSBldmVudFsibW96TW92ZW1lbnRYIl07CiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50WyJtb3ZlbWVudFkiXSA9IGV2ZW50WyJtb3pNb3ZlbWVudFkiXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRbIm1vdmVtZW50WCJdID09IDAgJiYgZXZlbnRbIm1vdmVtZW50WSJdID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAia2V5ZG93biI6CiAgICAgICAgICAgIGNhc2UgImtleXVwIjoKICAgICAgICAgICAgY2FzZSAia2V5cHJlc3MiOgogICAgICAgICAgICBjYXNlICJtb3VzZWRvd24iOgogICAgICAgICAgICBjYXNlICJtb3VzZXVwIjoKICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlICE9PSAia2V5ZG93biIgfHwgIVNETC51bmljb2RlICYmICFTREwudGV4dElucHV0IHx8IGV2ZW50LmtleUNvZGUgPT09IDggfHwgZXZlbnQua2V5Q29kZSA9PT0gOSkgewogICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09ICJtb3VzZWRvd24iKSB7CiAgICAgICAgICAgICAgICAgICAgU0RMLkRPTUJ1dHRvbnNbZXZlbnQuYnV0dG9uXSA9IDE7CiAgICAgICAgICAgICAgICAgICAgU0RMLmV2ZW50cy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogInRvdWNoc3RhcnQiLAogICAgICAgICAgICAgICAgICAgICAgICB0b3VjaDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllcjogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZUlEOiAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VYOiBldmVudC5wYWdlWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VZOiBldmVudC5wYWdlWQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PSAibW91c2V1cCIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIVNETC5ET01CdXR0b25zW2V2ZW50LmJ1dHRvbl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIFNETC5ldmVudHMucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJ0b3VjaGVuZCIsCiAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlSUQ6IC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVg6IGV2ZW50LnBhZ2VYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVk6IGV2ZW50LnBhZ2VZCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBTREwuRE9NQnV0dG9uc1tldmVudC5idXR0b25dID0gMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJrZXlkb3duIiB8fCBldmVudC50eXBlID09PSAibW91c2Vkb3duIikgewogICAgICAgICAgICAgICAgICAgIFNETC5jYW5SZXF1ZXN0RnVsbHNjcmVlbiA9IHRydWUKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gImtleXVwIiB8fCBldmVudC50eXBlID09PSAibW91c2V1cCIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoU0RMLmlzUmVxdWVzdGluZ0Z1bGxzY3JlZW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgTW9kdWxlWyJyZXF1ZXN0RnVsbHNjcmVlbiJdKHRydWUsIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICBTREwuaXNSZXF1ZXN0aW5nRnVsbHNjcmVlbiA9IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIFNETC5jYW5SZXF1ZXN0RnVsbHNjcmVlbiA9IGZhbHNlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gImtleXByZXNzIiAmJiBTREwuc2F2ZWRLZXlkb3duKSB7CiAgICAgICAgICAgICAgICAgICAgU0RMLnNhdmVkS2V5ZG93bi5rZXlwcmVzc0NoYXJDb2RlID0gZXZlbnQuY2hhckNvZGU7CiAgICAgICAgICAgICAgICAgICAgU0RMLnNhdmVkS2V5ZG93biA9IG51bGwKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gImtleWRvd24iKSB7CiAgICAgICAgICAgICAgICAgICAgU0RMLnNhdmVkS2V5ZG93biA9IGV2ZW50CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSAhPT0gImtleXByZXNzIiB8fCBTREwudGV4dElucHV0KSB7CiAgICAgICAgICAgICAgICAgICAgU0RMLmV2ZW50cy5wdXNoKGV2ZW50KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1vdXNlb3V0IjoKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKFNETC5ET01CdXR0b25zW2ldKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNETC5ldmVudHMucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAibW91c2V1cCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b246IGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlWDogZXZlbnQucGFnZVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlWTogZXZlbnQucGFnZVkKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIFNETC5ET01CdXR0b25zW2ldID0gMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZm9jdXMiOgogICAgICAgICAgICAgICAgU0RMLmV2ZW50cy5wdXNoKGV2ZW50KTsKICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYmx1ciI6CiAgICAgICAgICAgICAgICBTREwuZXZlbnRzLnB1c2goZXZlbnQpOwogICAgICAgICAgICAgICAgdW5wcmVzc0FsbFByZXNzZWRLZXlzKCk7CiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZpc2liaWxpdHljaGFuZ2UiOgogICAgICAgICAgICAgICAgU0RMLmV2ZW50cy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiAidmlzaWJpbGl0eWNoYW5nZSIsCiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogIWRvY3VtZW50LmhpZGRlbgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB1bnByZXNzQWxsUHJlc3NlZEtleXMoKTsKICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidW5sb2FkIjoKICAgICAgICAgICAgICAgIGlmIChCcm93c2VyLm1haW5Mb29wLnJ1bm5lcikgewogICAgICAgICAgICAgICAgICAgIFNETC5ldmVudHMucHVzaChldmVudCk7CiAgICAgICAgICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5ydW5uZXIoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJyZXNpemUiOgogICAgICAgICAgICAgICAgU0RMLmV2ZW50cy5wdXNoKGV2ZW50KTsKICAgICAgICAgICAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkgewogICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKFNETC5ldmVudHMubGVuZ3RoID49IDFlNCkgewogICAgICAgICAgICAgICAgTW9kdWxlLnByaW50RXJyKCJTREwgZXZlbnQgcXVldWUgZnVsbCwgZHJvcHBpbmcgZXZlbnRzIik7CiAgICAgICAgICAgICAgICBTREwuZXZlbnRzID0gU0RMLmV2ZW50cy5zbGljZSgwLCAxZTQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgU0RMLmZsdXNoRXZlbnRzVG9IYW5kbGVyKCk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0pLAogICAgICAgIGxvb2t1cEtleUNvZGVGb3JFdmVudDogKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgIHZhciBjb2RlID0gZXZlbnQua2V5Q29kZTsKICAgICAgICAgICAgaWYgKGNvZGUgPj0gNjUgJiYgY29kZSA8PSA5MCkgewogICAgICAgICAgICAgICAgY29kZSArPSAzMgogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29kZSA9IFNETC5rZXlDb2Rlc1tldmVudC5rZXlDb2RlXSB8fCBldmVudC5rZXlDb2RlOwogICAgICAgICAgICAgICAgaWYgKGV2ZW50LmxvY2F0aW9uID09PSBLZXlib2FyZEV2ZW50LkRPTV9LRVlfTE9DQVRJT05fUklHSFQgJiYgY29kZSA+PSAoMjI0IHwgMSA8PCAxMCkgJiYgY29kZSA8PSAoMjI3IHwgMSA8PCAxMCkpIHsKICAgICAgICAgICAgICAgICAgICBjb2RlICs9IDQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gY29kZQogICAgICAgIH0pLAogICAgICAgIGhhbmRsZUV2ZW50OiAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgaWYgKGV2ZW50LmhhbmRsZWQpIHJldHVybjsKICAgICAgICAgICAgZXZlbnQuaGFuZGxlZCA9IHRydWU7CiAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAidG91Y2hzdGFydCI6CiAgICAgICAgICAgICAgICBjYXNlICJ0b3VjaGVuZCI6CiAgICAgICAgICAgICAgICBjYXNlICJ0b3VjaG1vdmUiOiB7CiAgICAgICAgICAgICAgICAgICAgQnJvd3Nlci5jYWxjdWxhdGVNb3VzZUV2ZW50KGV2ZW50KTsKICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAia2V5ZG93biI6CiAgICAgICAgICAgIGNhc2UgImtleXVwIjogewogICAgICAgICAgICAgICAgdmFyIGRvd24gPSBldmVudC50eXBlID09PSAia2V5ZG93biI7CiAgICAgICAgICAgICAgICB2YXIgY29kZSA9IFNETC5sb29rdXBLZXlDb2RlRm9yRXZlbnQoZXZlbnQpOwogICAgICAgICAgICAgICAgSEVBUDhbU0RMLmtleWJvYXJkU3RhdGUgKyBjb2RlID4+IDBdID0gZG93bjsKICAgICAgICAgICAgICAgIFNETC5tb2RTdGF0ZSA9IChIRUFQOFtTREwua2V5Ym9hcmRTdGF0ZSArIDEyNDggPj4gMF0gPyA2NCA6IDApIHwgKEhFQVA4W1NETC5rZXlib2FyZFN0YXRlICsgMTI0OSA+PiAwXSA/IDEgOiAwKSB8IChIRUFQOFtTREwua2V5Ym9hcmRTdGF0ZSArIDEyNTAgPj4gMF0gPyAyNTYgOiAwKSB8IChIRUFQOFtTREwua2V5Ym9hcmRTdGF0ZSArIDEyNTIgPj4gMF0gPyAxMjggOiAwKSB8IChIRUFQOFtTREwua2V5Ym9hcmRTdGF0ZSArIDEyNTMgPj4gMF0gPyAyIDogMCkgfCAoSEVBUDhbU0RMLmtleWJvYXJkU3RhdGUgKyAxMjU0ID4+IDBdID8gNTEyIDogMCk7CiAgICAgICAgICAgICAgICBpZiAoZG93bikgewogICAgICAgICAgICAgICAgICAgIFNETC5rZXlib2FyZE1hcFtjb2RlXSA9IGV2ZW50LmtleUNvZGUKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIFNETC5rZXlib2FyZE1hcFtjb2RlXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKICAgICAgICAgICAgY2FzZSAibW91c2V1cCI6CiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PSAibW91c2Vkb3duIikgewogICAgICAgICAgICAgICAgICAgIFNETC5idXR0b25TdGF0ZSB8PSAxIDw8IGV2ZW50LmJ1dHRvbgogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09ICJtb3VzZXVwIikgewogICAgICAgICAgICAgICAgICAgIFNETC5idXR0b25TdGF0ZSAmPSB+KDEgPDwgZXZlbnQuYnV0dG9uKQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAibW91c2Vtb3ZlIjogewogICAgICAgICAgICAgICAgQnJvd3Nlci5jYWxjdWxhdGVNb3VzZUV2ZW50KGV2ZW50KTsKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIGZsdXNoRXZlbnRzVG9IYW5kbGVyOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghU0RMLmV2ZW50SGFuZGxlcikgcmV0dXJuOwogICAgICAgICAgICB3aGlsZSAoU0RMLnBvbGxFdmVudChTREwuZXZlbnRIYW5kbGVyVGVtcCkpIHsKICAgICAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF9paWkiXShTREwuZXZlbnRIYW5kbGVyLCBTREwuZXZlbnRIYW5kbGVyQ29udGV4dCwgU0RMLmV2ZW50SGFuZGxlclRlbXApCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBwb2xsRXZlbnQ6IChmdW5jdGlvbihwdHIpIHsKICAgICAgICAgICAgaWYgKFNETC5pbml0RmxhZ3MgJiA1MTIgJiYgU0RMLmpveXN0aWNrRXZlbnRTdGF0ZSkgewogICAgICAgICAgICAgICAgU0RMLnF1ZXJ5Sm95c3RpY2tzKCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocHRyKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoU0RMLmV2ZW50cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKFNETC5tYWtlQ0V2ZW50KFNETC5ldmVudHMuc2hpZnQoKSwgcHRyKSAhPT0gZmFsc2UpIHJldHVybiAxCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIFNETC5ldmVudHMubGVuZ3RoID4gMAogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgbWFrZUNFdmVudDogKGZ1bmN0aW9uKGV2ZW50LCBwdHIpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBldmVudCA9PT0gIm51bWJlciIpIHsKICAgICAgICAgICAgICAgIF9tZW1jcHkocHRyLCBldmVudCwgMjgpOwogICAgICAgICAgICAgICAgX2ZyZWUoZXZlbnQpOwogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgU0RMLmhhbmRsZUV2ZW50KGV2ZW50KTsKICAgICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJrZXlkb3duIjoKICAgICAgICAgICAgICAgIGNhc2UgImtleXVwIjogewogICAgICAgICAgICAgICAgICAgIHZhciBkb3duID0gZXZlbnQudHlwZSA9PT0gImtleWRvd24iOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXkgPSBTREwubG9va3VwS2V5Q29kZUZvckV2ZW50KGV2ZW50KTsKICAgICAgICAgICAgICAgICAgICB2YXIgc2NhbjsKICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID49IDEwMjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2NhbiA9IGtleSAtIDEwMjQKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBzY2FuID0gU0RMLnNjYW5Db2Rlc1trZXldIHx8IGtleQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyID4+IDJdID0gU0RMLkRPTUV2ZW50VG9TRExFdmVudFtldmVudC50eXBlXTsKICAgICAgICAgICAgICAgICAgICBIRUFQOFtwdHIgKyA4ID4+IDBdID0gZG93biA/IDEgOiAwOwogICAgICAgICAgICAgICAgICAgIEhFQVA4W3B0ciArIDkgPj4gMF0gPSAwOwogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgKyAxMiA+PiAyXSA9IHNjYW47CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDE2ID4+IDJdID0ga2V5OwogICAgICAgICAgICAgICAgICAgIEhFQVAxNltwdHIgKyAyMCA+PiAxXSA9IFNETC5tb2RTdGF0ZTsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMjQgPj4gMl0gPSBldmVudC5rZXlwcmVzc0NoYXJDb2RlIHx8IGtleTsKICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAia2V5cHJlc3MiOiB7CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyID4+IDJdID0gU0RMLkRPTUV2ZW50VG9TRExFdmVudFtldmVudC50eXBlXTsKICAgICAgICAgICAgICAgIHZhciBjU3RyID0gaW50QXJyYXlGcm9tU3RyaW5nKFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY1N0ci5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgICAgIEhFQVA4W3B0ciArICg4ICsgaSkgPj4gMF0gPSBjU3RyW2ldCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICB9OwogICAgICAgICAgICBjYXNlICJtb3VzZWRvd24iOgogICAgICAgICAgICBjYXNlICJtb3VzZXVwIjoKICAgICAgICAgICAgY2FzZSAibW91c2Vtb3ZlIjogewogICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgIT0gIm1vdXNlbW92ZSIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZG93biA9IGV2ZW50LnR5cGUgPT09ICJtb3VzZWRvd24iOwogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgPj4gMl0gPSBTREwuRE9NRXZlbnRUb1NETEV2ZW50W2V2ZW50LnR5cGVdOwogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgKyA0ID4+IDJdID0gMDsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgOCA+PiAyXSA9IDA7CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDEyID4+IDJdID0gMDsKICAgICAgICAgICAgICAgICAgICBIRUFQOFtwdHIgKyAxNiA+PiAwXSA9IGV2ZW50LmJ1dHRvbiArIDE7CiAgICAgICAgICAgICAgICAgICAgSEVBUDhbcHRyICsgMTcgPj4gMF0gPSBkb3duID8gMSA6IDA7CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDIwID4+IDJdID0gQnJvd3Nlci5tb3VzZVg7CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDI0ID4+IDJdID0gQnJvd3Nlci5tb3VzZVkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciA+PiAyXSA9IFNETC5ET01FdmVudFRvU0RMRXZlbnRbZXZlbnQudHlwZV07CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDQgPj4gMl0gPSAwOwogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgKyA4ID4+IDJdID0gMDsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMTIgPj4gMl0gPSAwOwogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgKyAxNiA+PiAyXSA9IFNETC5idXR0b25TdGF0ZTsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMjAgPj4gMl0gPSBCcm93c2VyLm1vdXNlWDsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMjQgPj4gMl0gPSBCcm93c2VyLm1vdXNlWTsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMjggPj4gMl0gPSBCcm93c2VyLm1vdXNlTW92ZW1lbnRYOwogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgKyAzMiA+PiAyXSA9IEJyb3dzZXIubW91c2VNb3ZlbWVudFkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgIndoZWVsIjogewogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciA+PiAyXSA9IFNETC5ET01FdmVudFRvU0RMRXZlbnRbZXZlbnQudHlwZV07CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMTYgPj4gMl0gPSBldmVudC5kZWx0YVg7CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMjAgPj4gMl0gPSBldmVudC5kZWx0YVk7CiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICB9OwogICAgICAgICAgICBjYXNlICJ0b3VjaHN0YXJ0IjoKICAgICAgICAgICAgY2FzZSAidG91Y2hlbmQiOgogICAgICAgICAgICBjYXNlICJ0b3VjaG1vdmUiOiB7CiAgICAgICAgICAgICAgICB2YXIgdG91Y2ggPSBldmVudC50b3VjaDsKICAgICAgICAgICAgICAgIGlmICghQnJvd3Nlci50b3VjaGVzW3RvdWNoLmlkZW50aWZpZXJdKSBicmVhazsKICAgICAgICAgICAgICAgIHZhciB3ID0gTW9kdWxlWyJjYW52YXMiXS53aWR0aDsKICAgICAgICAgICAgICAgIHZhciBoID0gTW9kdWxlWyJjYW52YXMiXS5oZWlnaHQ7CiAgICAgICAgICAgICAgICB2YXIgeCA9IEJyb3dzZXIudG91Y2hlc1t0b3VjaC5pZGVudGlmaWVyXS54IC8gdzsKICAgICAgICAgICAgICAgIHZhciB5ID0gQnJvd3Nlci50b3VjaGVzW3RvdWNoLmlkZW50aWZpZXJdLnkgLyBoOwogICAgICAgICAgICAgICAgdmFyIGx4ID0gQnJvd3Nlci5sYXN0VG91Y2hlc1t0b3VjaC5pZGVudGlmaWVyXS54IC8gdzsKICAgICAgICAgICAgICAgIHZhciBseSA9IEJyb3dzZXIubGFzdFRvdWNoZXNbdG91Y2guaWRlbnRpZmllcl0ueSAvIGg7CiAgICAgICAgICAgICAgICB2YXIgZHggPSB4IC0gbHg7CiAgICAgICAgICAgICAgICB2YXIgZHkgPSB5IC0gbHk7CiAgICAgICAgICAgICAgICBpZiAodG91Y2hbImRldmljZUlEIl0gPT09IHVuZGVmaW5lZCkgdG91Y2guZGV2aWNlSUQgPSBTREwuVE9VQ0hfREVGQVVMVF9JRDsKICAgICAgICAgICAgICAgIGlmIChkeCA9PT0gMCAmJiBkeSA9PT0gMCAmJiBldmVudC50eXBlID09PSAidG91Y2htb3ZlIikgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciA+PiAyXSA9IFNETC5ET01FdmVudFRvU0RMRXZlbnRbZXZlbnQudHlwZV07CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgNCA+PiAyXSA9IF9TRExfR2V0VGlja3MoKTsKICAgICAgICAgICAgICAgIHRlbXBJNjQgPSBbdG91Y2guZGV2aWNlSUQgPj4+IDAsICh0ZW1wRG91YmxlID0gdG91Y2guZGV2aWNlSUQsICtNYXRoX2Ficyh0ZW1wRG91YmxlKSA+PSAxID8gdGVtcERvdWJsZSA+IDAgPyAoTWF0aF9taW4oK01hdGhfZmxvb3IodGVtcERvdWJsZSAvIDQyOTQ5NjcyOTYpLCA0Mjk0OTY3Mjk1KSB8IDApID4+PiAwIDogfn4rTWF0aF9jZWlsKCh0ZW1wRG91YmxlIC0gKyh+fnRlbXBEb3VibGUgPj4+IDApKSAvIDQyOTQ5NjcyOTYpID4+PiAwIDogMCldLCBIRUFQMzJbcHRyICsgOCA+PiAyXSA9IHRlbXBJNjRbMF0sIEhFQVAzMltwdHIgKyAxMiA+PiAyXSA9IHRlbXBJNjRbMV07CiAgICAgICAgICAgICAgICB0ZW1wSTY0ID0gW3RvdWNoLmlkZW50aWZpZXIgPj4+IDAsICh0ZW1wRG91YmxlID0gdG91Y2guaWRlbnRpZmllciwgK01hdGhfYWJzKHRlbXBEb3VibGUpID49IDEgPyB0ZW1wRG91YmxlID4gMCA/IChNYXRoX21pbigrTWF0aF9mbG9vcih0ZW1wRG91YmxlIC8gNDI5NDk2NzI5NiksIDQyOTQ5NjcyOTUpIHwgMCkgPj4+IDAgOiB+fitNYXRoX2NlaWwoKHRlbXBEb3VibGUgLSArKH5+dGVtcERvdWJsZSA+Pj4gMCkpIC8gNDI5NDk2NzI5NikgPj4+IDAgOiAwKV0sIEhFQVAzMltwdHIgKyAxNiA+PiAyXSA9IHRlbXBJNjRbMF0sIEhFQVAzMltwdHIgKyAyMCA+PiAyXSA9IHRlbXBJNjRbMV07CiAgICAgICAgICAgICAgICBIRUFQRjMyW3B0ciArIDI0ID4+IDJdID0geDsKICAgICAgICAgICAgICAgIEhFQVBGMzJbcHRyICsgMjggPj4gMl0gPSB5OwogICAgICAgICAgICAgICAgSEVBUEYzMltwdHIgKyAzMiA+PiAyXSA9IGR4OwogICAgICAgICAgICAgICAgSEVBUEYzMltwdHIgKyAzNiA+PiAyXSA9IGR5OwogICAgICAgICAgICAgICAgaWYgKHRvdWNoLmZvcmNlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBIRUFQRjMyW3B0ciArIDQwID4+IDJdID0gdG91Y2guZm9yY2UKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgSEVBUEYzMltwdHIgKyA0MCA+PiAyXSA9IGV2ZW50LnR5cGUgPT0gInRvdWNoZW5kIiA/IDAgOiAxCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICB9OwogICAgICAgICAgICBjYXNlICJ1bmxvYWQiOiB7CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyID4+IDJdID0gU0RMLkRPTUV2ZW50VG9TRExFdmVudFtldmVudC50eXBlXTsKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgInJlc2l6ZSI6IHsKICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgPj4gMl0gPSBTREwuRE9NRXZlbnRUb1NETEV2ZW50W2V2ZW50LnR5cGVdOwogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDQgPj4gMl0gPSBldmVudC53OwogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDggPj4gMl0gPSBldmVudC5oOwogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAiam95c3RpY2tfYnV0dG9uX3VwIjoKICAgICAgICAgICAgY2FzZSAiam95c3RpY2tfYnV0dG9uX2Rvd24iOiB7CiAgICAgICAgICAgICAgICB2YXIgc3RhdGUgPSBldmVudC50eXBlID09PSAiam95c3RpY2tfYnV0dG9uX3VwIiA/IDAgOiAxOwogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciA+PiAyXSA9IFNETC5ET01FdmVudFRvU0RMRXZlbnRbZXZlbnQudHlwZV07CiAgICAgICAgICAgICAgICBIRUFQOFtwdHIgKyA0ID4+IDBdID0gZXZlbnQuaW5kZXg7CiAgICAgICAgICAgICAgICBIRUFQOFtwdHIgKyA1ID4+IDBdID0gZXZlbnQuYnV0dG9uOwogICAgICAgICAgICAgICAgSEVBUDhbcHRyICsgNiA+PiAwXSA9IHN0YXRlOwogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAiam95c3RpY2tfYXhpc19tb3Rpb24iOiB7CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyID4+IDJdID0gU0RMLkRPTUV2ZW50VG9TRExFdmVudFtldmVudC50eXBlXTsKICAgICAgICAgICAgICAgIEhFQVA4W3B0ciArIDQgPj4gMF0gPSBldmVudC5pbmRleDsKICAgICAgICAgICAgICAgIEhFQVA4W3B0ciArIDUgPj4gMF0gPSBldmVudC5heGlzOwogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDggPj4gMl0gPSBTREwuam95c3RpY2tBeGlzVmFsdWVDb252ZXJzaW9uKGV2ZW50LnZhbHVlKTsKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgImZvY3VzIjogewogICAgICAgICAgICAgICAgdmFyIFNETF9XSU5ET1dFVkVOVF9GT0NVU19HQUlORUQgPSAxMjsKICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgPj4gMl0gPSBTREwuRE9NRXZlbnRUb1NETEV2ZW50W2V2ZW50LnR5cGVdOwogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDQgPj4gMl0gPSAwOwogICAgICAgICAgICAgICAgSEVBUDhbcHRyICsgOCA+PiAwXSA9IFNETF9XSU5ET1dFVkVOVF9GT0NVU19HQUlORUQ7CiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICB9OwogICAgICAgICAgICBjYXNlICJibHVyIjogewogICAgICAgICAgICAgICAgdmFyIFNETF9XSU5ET1dFVkVOVF9GT0NVU19MT1NUID0gMTM7CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyID4+IDJdID0gU0RMLkRPTUV2ZW50VG9TRExFdmVudFtldmVudC50eXBlXTsKICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgKyA0ID4+IDJdID0gMDsKICAgICAgICAgICAgICAgIEhFQVA4W3B0ciArIDggPj4gMF0gPSBTRExfV0lORE9XRVZFTlRfRk9DVVNfTE9TVDsKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgInZpc2liaWxpdHljaGFuZ2UiOiB7CiAgICAgICAgICAgICAgICB2YXIgU0RMX1dJTkRPV0VWRU5UX1NIT1dOID0gMTsKICAgICAgICAgICAgICAgIHZhciBTRExfV0lORE9XRVZFTlRfSElEREVOID0gMjsKICAgICAgICAgICAgICAgIHZhciB2aXNpYmlsaXR5RXZlbnRJRCA9IGV2ZW50LnZpc2libGUgPyBTRExfV0lORE9XRVZFTlRfU0hPV04gOiBTRExfV0lORE9XRVZFTlRfSElEREVOOwogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciA+PiAyXSA9IFNETC5ET01FdmVudFRvU0RMRXZlbnRbZXZlbnQudHlwZV07CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgNCA+PiAyXSA9IDA7CiAgICAgICAgICAgICAgICBIRUFQOFtwdHIgKyA4ID4+IDBdID0gdmlzaWJpbGl0eUV2ZW50SUQ7CiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICB9OwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgdGhyb3cgIlVuaGFuZGxlZCBTREwgZXZlbnQ6ICIgKyBldmVudC50eXBlCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBtYWtlRm9udFN0cmluZzogKGZ1bmN0aW9uKGhlaWdodCwgZm9udE5hbWUpIHsKICAgICAgICAgICAgaWYgKGZvbnROYW1lLmNoYXJBdCgwKSAhPSAiJyIgJiYgZm9udE5hbWUuY2hhckF0KDApICE9ICciJykgewogICAgICAgICAgICAgICAgZm9udE5hbWUgPSAnIicgKyBmb250TmFtZSArICciJwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBoZWlnaHQgKyAicHggIiArIGZvbnROYW1lICsgIiwgc2VyaWYiCiAgICAgICAgfSksCiAgICAgICAgZXN0aW1hdGVUZXh0V2lkdGg6IChmdW5jdGlvbihmb250RGF0YSwgdGV4dCkgewogICAgICAgICAgICB2YXIgaCA9IGZvbnREYXRhLnNpemU7CiAgICAgICAgICAgIHZhciBmb250U3RyaW5nID0gU0RMLm1ha2VGb250U3RyaW5nKGgsIGZvbnREYXRhLm5hbWUpOwogICAgICAgICAgICB2YXIgdGVtcEN0eCA9IFNETC50dGZDb250ZXh0OwogICAgICAgICAgICB0ZW1wQ3R4LnNhdmUoKTsKICAgICAgICAgICAgdGVtcEN0eC5mb250ID0gZm9udFN0cmluZzsKICAgICAgICAgICAgdmFyIHJldCA9IHRlbXBDdHgubWVhc3VyZVRleHQodGV4dCkud2lkdGggfCAwOwogICAgICAgICAgICB0ZW1wQ3R4LnJlc3RvcmUoKTsKICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgIH0pLAogICAgICAgIGFsbG9jYXRlQ2hhbm5lbHM6IChmdW5jdGlvbihudW0pIHsKICAgICAgICAgICAgaWYgKFNETC5udW1DaGFubmVscyAmJiBTREwubnVtQ2hhbm5lbHMgPj0gbnVtICYmIG51bSAhPSAwKSByZXR1cm47CiAgICAgICAgICAgIFNETC5udW1DaGFubmVscyA9IG51bTsKICAgICAgICAgICAgU0RMLmNoYW5uZWxzID0gW107CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKICAgICAgICAgICAgICAgIFNETC5jaGFubmVsc1tpXSA9IHsKICAgICAgICAgICAgICAgICAgICBhdWRpbzogbnVsbCwKICAgICAgICAgICAgICAgICAgICB2b2x1bWU6IDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIHNldEdldFZvbHVtZTogKGZ1bmN0aW9uKGluZm8sIHZvbHVtZSkgewogICAgICAgICAgICBpZiAoIWluZm8pIHJldHVybiAwOwogICAgICAgICAgICB2YXIgcmV0ID0gaW5mby52b2x1bWUgKiAxMjg7CiAgICAgICAgICAgIGlmICh2b2x1bWUgIT0gLTEpIHsKICAgICAgICAgICAgICAgIGluZm8udm9sdW1lID0gTWF0aC5taW4oTWF0aC5tYXgodm9sdW1lLCAwKSwgMTI4KSAvIDEyODsKICAgICAgICAgICAgICAgIGlmIChpbmZvLmF1ZGlvKSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5hdWRpby52b2x1bWUgPSBpbmZvLnZvbHVtZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8uYXVkaW8ud2ViQXVkaW9HYWluTm9kZSkgaW5mby5hdWRpby53ZWJBdWRpb0dhaW5Ob2RlWyJnYWluIl1bInZhbHVlIl0gPSBpbmZvLnZvbHVtZQogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgTW9kdWxlLnByaW50RXJyKCJzZXRHZXRWb2x1bWUgZmFpbGVkIHRvIHNldCBhdWRpbyB2b2x1bWU6ICIgKyBlKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcmV0CiAgICAgICAgfSksCiAgICAgICAgc2V0UGFubmVyUG9zaXRpb246IChmdW5jdGlvbihpbmZvLCB4LCB5LCB6KSB7CiAgICAgICAgICAgIGlmICghaW5mbykgcmV0dXJuOwogICAgICAgICAgICBpZiAoaW5mby5hdWRpbykgewogICAgICAgICAgICAgICAgaWYgKGluZm8uYXVkaW8ud2ViQXVkaW9QYW5uZXJOb2RlKSB7CiAgICAgICAgICAgICAgICAgICAgaW5mby5hdWRpby53ZWJBdWRpb1Bhbm5lck5vZGVbInNldFBvc2l0aW9uIl0oeCwgeSwgeikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIHBsYXlXZWJBdWRpbzogKGZ1bmN0aW9uKGF1ZGlvKSB7CiAgICAgICAgICAgIGlmICghYXVkaW8pIHJldHVybjsKICAgICAgICAgICAgaWYgKGF1ZGlvLndlYkF1ZGlvTm9kZSkgcmV0dXJuOwogICAgICAgICAgICBpZiAoIVNETC53ZWJBdWRpb0F2YWlsYWJsZSgpKSByZXR1cm47CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICB2YXIgd2ViQXVkaW8gPSBhdWRpby5yZXNvdXJjZS53ZWJBdWRpbzsKICAgICAgICAgICAgICAgIGF1ZGlvLnBhdXNlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgaWYgKCF3ZWJBdWRpby5kZWNvZGVkQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHdlYkF1ZGlvLm9uRGVjb2RlQ29tcGxldGUgPT09IHVuZGVmaW5lZCkgYWJvcnQoIkNhbm5vdCBwbGF5IGJhY2sgYXVkaW8gb2JqZWN0IHRoYXQgd2FzIG5vdCBsb2FkZWQiKTsKICAgICAgICAgICAgICAgICAgICB3ZWJBdWRpby5vbkRlY29kZUNvbXBsZXRlLnB1c2goKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF1ZGlvLnBhdXNlZCkgU0RMLnBsYXlXZWJBdWRpbyhhdWRpbykKICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhdWRpby53ZWJBdWRpb05vZGUgPSBTREwuYXVkaW9Db250ZXh0WyJjcmVhdGVCdWZmZXJTb3VyY2UiXSgpOwogICAgICAgICAgICAgICAgYXVkaW8ud2ViQXVkaW9Ob2RlWyJidWZmZXIiXSA9IHdlYkF1ZGlvLmRlY29kZWRCdWZmZXI7CiAgICAgICAgICAgICAgICBhdWRpby53ZWJBdWRpb05vZGVbImxvb3AiXSA9IGF1ZGlvLmxvb3A7CiAgICAgICAgICAgICAgICBhdWRpby53ZWJBdWRpb05vZGVbIm9uZW5kZWQiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBhdWRpb1sib25lbmRlZCJdKCkKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYXVkaW8ud2ViQXVkaW9QYW5uZXJOb2RlID0gU0RMLmF1ZGlvQ29udGV4dFsiY3JlYXRlUGFubmVyIl0oKTsKICAgICAgICAgICAgICAgIGF1ZGlvLndlYkF1ZGlvUGFubmVyTm9kZVsic2V0UG9zaXRpb24iXSgwLCAwLCAtLjUpOwogICAgICAgICAgICAgICAgYXVkaW8ud2ViQXVkaW9QYW5uZXJOb2RlWyJwYW5uaW5nTW9kZWwiXSA9ICJlcXVhbHBvd2VyIjsKICAgICAgICAgICAgICAgIGF1ZGlvLndlYkF1ZGlvR2Fpbk5vZGUgPSBTREwuYXVkaW9Db250ZXh0WyJjcmVhdGVHYWluIl0oKTsKICAgICAgICAgICAgICAgIGF1ZGlvLndlYkF1ZGlvR2Fpbk5vZGVbImdhaW4iXVsidmFsdWUiXSA9IGF1ZGlvLnZvbHVtZTsKICAgICAgICAgICAgICAgIGF1ZGlvLndlYkF1ZGlvTm9kZVsiY29ubmVjdCJdKGF1ZGlvLndlYkF1ZGlvUGFubmVyTm9kZSk7CiAgICAgICAgICAgICAgICBhdWRpby53ZWJBdWRpb1Bhbm5lck5vZGVbImNvbm5lY3QiXShhdWRpby53ZWJBdWRpb0dhaW5Ob2RlKTsKICAgICAgICAgICAgICAgIGF1ZGlvLndlYkF1ZGlvR2Fpbk5vZGVbImNvbm5lY3QiXShTREwuYXVkaW9Db250ZXh0WyJkZXN0aW5hdGlvbiJdKTsKICAgICAgICAgICAgICAgIGF1ZGlvLndlYkF1ZGlvTm9kZVsic3RhcnQiXSgwLCBhdWRpby5jdXJyZW50UG9zaXRpb24pOwogICAgICAgICAgICAgICAgYXVkaW8uc3RhcnRUaW1lID0gU0RMLmF1ZGlvQ29udGV4dFsiY3VycmVudFRpbWUiXSAtIGF1ZGlvLmN1cnJlbnRQb3NpdGlvbgogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICBNb2R1bGUucHJpbnRFcnIoInBsYXlXZWJBdWRpbyBmYWlsZWQ6ICIgKyBlKQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgcGF1c2VXZWJBdWRpbzogKGZ1bmN0aW9uKGF1ZGlvKSB7CiAgICAgICAgICAgIGlmICghYXVkaW8pIHJldHVybjsKICAgICAgICAgICAgaWYgKGF1ZGlvLndlYkF1ZGlvTm9kZSkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBhdWRpby5jdXJyZW50UG9zaXRpb24gPSAoU0RMLmF1ZGlvQ29udGV4dFsiY3VycmVudFRpbWUiXSAtIGF1ZGlvLnN0YXJ0VGltZSkgJSBhdWRpby5yZXNvdXJjZS53ZWJBdWRpby5kZWNvZGVkQnVmZmVyLmR1cmF0aW9uOwogICAgICAgICAgICAgICAgICAgIGF1ZGlvLndlYkF1ZGlvTm9kZVsib25lbmRlZCJdID0gdW5kZWZpbmVkOwogICAgICAgICAgICAgICAgICAgIGF1ZGlvLndlYkF1ZGlvTm9kZS5zdG9wKDApOwogICAgICAgICAgICAgICAgICAgIGF1ZGlvLndlYkF1ZGlvTm9kZSA9IHVuZGVmaW5lZAogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIE1vZHVsZS5wcmludEVycigicGF1c2VXZWJBdWRpbyBmYWlsZWQ6ICIgKyBlKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGF1ZGlvLnBhdXNlZCA9IHRydWUKICAgICAgICB9KSwKICAgICAgICBvcGVuQXVkaW9Db250ZXh0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghU0RMLmF1ZGlvQ29udGV4dCkgewogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBBdWRpb0NvbnRleHQgIT09ICJ1bmRlZmluZWQiKSBTREwuYXVkaW9Db250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dDsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB3ZWJraXRBdWRpb0NvbnRleHQgIT09ICJ1bmRlZmluZWQiKSBTREwuYXVkaW9Db250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dAogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgd2ViQXVkaW9BdmFpbGFibGU6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmV0dXJuICEhU0RMLmF1ZGlvQ29udGV4dAogICAgICAgIH0pLAogICAgICAgIGZpbGxXZWJBdWRpb0J1ZmZlckZyb21IZWFwOiAoZnVuY3Rpb24oaGVhcFB0ciwgc2l6ZVNhbXBsZXNQZXJDaGFubmVsLCBkc3RBdWRpb0J1ZmZlcikgewogICAgICAgICAgICB2YXIgbnVtQ2hhbm5lbHMgPSBTREwuYXVkaW8uY2hhbm5lbHM7CiAgICAgICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgbnVtQ2hhbm5lbHM7ICsrYykgewogICAgICAgICAgICAgICAgdmFyIGNoYW5uZWxEYXRhID0gZHN0QXVkaW9CdWZmZXJbImdldENoYW5uZWxEYXRhIl0oYyk7CiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbERhdGEubGVuZ3RoICE9IHNpemVTYW1wbGVzUGVyQ2hhbm5lbCkgewogICAgICAgICAgICAgICAgICAgIHRocm93ICJXZWIgQXVkaW8gb3V0cHV0IGJ1ZmZlciBsZW5ndGggbWlzbWF0Y2ghIERlc3RpbmF0aW9uIHNpemU6ICIgKyBjaGFubmVsRGF0YS5sZW5ndGggKyAiIHNhbXBsZXMgdnMgZXhwZWN0ZWQgIiArIHNpemVTYW1wbGVzUGVyQ2hhbm5lbCArICIgc2FtcGxlcyEiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoU0RMLmF1ZGlvLmZvcm1hdCA9PSAzMjc4NCkgewogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc2l6ZVNhbXBsZXNQZXJDaGFubmVsOyArK2opIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbERhdGFbal0gPSBIRUFQMTZbaGVhcFB0ciArIChqICogbnVtQ2hhbm5lbHMgKyBjKSAqIDIgPj4gMV0gLyAzMjc2OAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoU0RMLmF1ZGlvLmZvcm1hdCA9PSA4KSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzaXplU2FtcGxlc1BlckNoYW5uZWw7ICsraikgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IEhFQVA4W2hlYXBQdHIgKyAoaiAqIG51bUNoYW5uZWxzICsgYykgPj4gMF07CiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxEYXRhW2pdID0gKHYgPj0gMCA/IHYgLSAxMjggOiB2ICsgMTI4KSAvIDEyOAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoU0RMLmF1ZGlvLmZvcm1hdCA9PSAzMzA1NikgewogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc2l6ZVNhbXBsZXNQZXJDaGFubmVsOyArK2opIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbERhdGFbal0gPSBIRUFQRjMyW2hlYXBQdHIgKyAoaiAqIG51bUNoYW5uZWxzICsgYykgKiA0ID4+IDJdCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyAiSW52YWxpZCBTREwgYXVkaW8gZm9ybWF0ICIgKyBTREwuYXVkaW8uZm9ybWF0ICsgIiEiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBkZWJ1Z1N1cmZhY2U6IChmdW5jdGlvbihzdXJmRGF0YSkgewogICAgICAgICAgICBjb25zb2xlLmxvZygiZHVtcGluZyBzdXJmYWNlICIgKyBbc3VyZkRhdGEuc3VyZiwgc3VyZkRhdGEuc291cmNlLCBzdXJmRGF0YS53aWR0aCwgc3VyZkRhdGEuaGVpZ2h0XSk7CiAgICAgICAgICAgIHZhciBpbWFnZSA9IHN1cmZEYXRhLmN0eC5nZXRJbWFnZURhdGEoMCwgMCwgc3VyZkRhdGEud2lkdGgsIHN1cmZEYXRhLmhlaWdodCk7CiAgICAgICAgICAgIHZhciBkYXRhID0gaW1hZ2UuZGF0YTsKICAgICAgICAgICAgdmFyIG51bSA9IE1hdGgubWluKHN1cmZEYXRhLndpZHRoLCBzdXJmRGF0YS5oZWlnaHQpOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bTsgaSsrKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiICAgZGlhZ29uYWwgIiArIGkgKyAiOiIgKyBbZGF0YVtpICogc3VyZkRhdGEud2lkdGggKiA0ICsgaSAqIDQgKyAwXSwgZGF0YVtpICogc3VyZkRhdGEud2lkdGggKiA0ICsgaSAqIDQgKyAxXSwgZGF0YVtpICogc3VyZkRhdGEud2lkdGggKiA0ICsgaSAqIDQgKyAyXSwgZGF0YVtpICogc3VyZkRhdGEud2lkdGggKiA0ICsgaSAqIDQgKyAzXV0pCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBqb3lzdGlja0V2ZW50U3RhdGU6IDEsCiAgICAgICAgbGFzdEpveXN0aWNrU3RhdGU6IHt9LAogICAgICAgIGpveXN0aWNrTmFtZVBvb2w6IHt9LAogICAgICAgIHJlY29yZEpveXN0aWNrU3RhdGU6IChmdW5jdGlvbihqb3lzdGljaywgc3RhdGUpIHsKICAgICAgICAgICAgdmFyIGJ1dHRvbnMgPSBuZXcgQXJyYXkoc3RhdGUuYnV0dG9ucy5sZW5ndGgpOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YXRlLmJ1dHRvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGJ1dHRvbnNbaV0gPSBTREwuZ2V0Sm95c3RpY2tCdXR0b25TdGF0ZShzdGF0ZS5idXR0b25zW2ldKQogICAgICAgICAgICB9CiAgICAgICAgICAgIFNETC5sYXN0Sm95c3RpY2tTdGF0ZVtqb3lzdGlja10gPSB7CiAgICAgICAgICAgICAgICBidXR0b25zOiBidXR0b25zLAogICAgICAgICAgICAgICAgYXhlczogc3RhdGUuYXhlcy5zbGljZSgwKSwKICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogc3RhdGUudGltZXN0YW1wLAogICAgICAgICAgICAgICAgaW5kZXg6IHN0YXRlLmluZGV4LAogICAgICAgICAgICAgICAgaWQ6IHN0YXRlLmlkCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBnZXRKb3lzdGlja0J1dHRvblN0YXRlOiAoZnVuY3Rpb24oYnV0dG9uKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgYnV0dG9uID09PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgcmV0dXJuIGJ1dHRvblsicHJlc3NlZCJdCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYnV0dG9uID4gMAogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgcXVlcnlKb3lzdGlja3M6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgZm9yICh2YXIgam95c3RpY2sgaW4gU0RMLmxhc3RKb3lzdGlja1N0YXRlKSB7CiAgICAgICAgICAgICAgICB2YXIgc3RhdGUgPSBTREwuZ2V0R2FtZXBhZChqb3lzdGljayAtIDEpOwogICAgICAgICAgICAgICAgdmFyIHByZXZTdGF0ZSA9IFNETC5sYXN0Sm95c3RpY2tTdGF0ZVtqb3lzdGlja107CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHN0YXRlID09PSAidW5kZWZpbmVkIikgcmV0dXJuOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzdGF0ZS50aW1lc3RhbXAgIT09ICJudW1iZXIiIHx8IHN0YXRlLnRpbWVzdGFtcCAhPT0gcHJldlN0YXRlLnRpbWVzdGFtcCkgewogICAgICAgICAgICAgICAgICAgIHZhciBpOwogICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzdGF0ZS5idXR0b25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBidXR0b25TdGF0ZSA9IFNETC5nZXRKb3lzdGlja0J1dHRvblN0YXRlKHN0YXRlLmJ1dHRvbnNbaV0pOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnV0dG9uU3RhdGUgIT09IHByZXZTdGF0ZS5idXR0b25zW2ldKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTREwuZXZlbnRzLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGJ1dHRvblN0YXRlID8gImpveXN0aWNrX2J1dHRvbl9kb3duIiA6ICJqb3lzdGlja19idXR0b25fdXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpveXN0aWNrOiBqb3lzdGljaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogam95c3RpY2sgLSAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbjogaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3RhdGUuYXhlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuYXhlc1tpXSAhPT0gcHJldlN0YXRlLmF4ZXNbaV0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNETC5ldmVudHMucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogImpveXN0aWNrX2F4aXNfbW90aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb3lzdGljazogam95c3RpY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGpveXN0aWNrIC0gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGlzOiBpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzdGF0ZS5heGVzW2ldCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIFNETC5yZWNvcmRKb3lzdGlja1N0YXRlKGpveXN0aWNrLCBzdGF0ZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIGpveXN0aWNrQXhpc1ZhbHVlQ29udmVyc2lvbjogKGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIHZhbHVlID0gTWF0aC5taW4oMSwgTWF0aC5tYXgodmFsdWUsIC0xKSk7CiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwoKHZhbHVlICsgMSkgKiAzMjc2Ny41IC0gMzI3NjgpCiAgICAgICAgfSksCiAgICAgICAgZ2V0R2FtZXBhZHM6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGZjbiA9IG5hdmlnYXRvci5nZXRHYW1lcGFkcyB8fCBuYXZpZ2F0b3Iud2Via2l0R2FtZXBhZHMgfHwgbmF2aWdhdG9yLm1vekdhbWVwYWRzIHx8IG5hdmlnYXRvci5nYW1lcGFkcyB8fCBuYXZpZ2F0b3Iud2Via2l0R2V0R2FtZXBhZHM7CiAgICAgICAgICAgIGlmIChmY24gIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZjbi5hcHBseShuYXZpZ2F0b3IpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gW10KICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIGdldEdhbWVwYWQ6IChmdW5jdGlvbihkZXZpY2VJbmRleCkgewogICAgICAgICAgICB2YXIgZ2FtZXBhZHMgPSBTREwuZ2V0R2FtZXBhZHMoKTsKICAgICAgICAgICAgaWYgKGdhbWVwYWRzLmxlbmd0aCA+IGRldmljZUluZGV4ICYmIGRldmljZUluZGV4ID49IDApIHsKICAgICAgICAgICAgICAgIHJldHVybiBnYW1lcGFkc1tkZXZpY2VJbmRleF0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgIH0pCiAgICB9OwoKICAgIGZ1bmN0aW9uIF9TRExfR0xfU3dhcEJ1ZmZlcnMoKSB7CiAgICAgICAgaWYgKEJyb3dzZXIuZG9Td2FwQnVmZmVycykgQnJvd3Nlci5kb1N3YXBCdWZmZXJzKCkKICAgIH0KCiAgICBmdW5jdGlvbiBfU3luY0ZpbGVzKCkgewogICAgICAgIEZTLnN5bmNmcyhmYWxzZSwgKGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICBpZiAoZXJyICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycikKICAgICAgICAgICAgfQogICAgICAgIH0pKQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb24oc2l6ZSkgewogICAgICAgIHJldHVybiBfbWFsbG9jKHNpemUpCiAgICB9CgogICAgZnVuY3Rpb24gX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYoKSB7CiAgICAgICAgcmV0dXJuICEhX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uCiAgICB9CiAgICB2YXIgRVhDRVBUSU9OUyA9IHsKICAgICAgICBsYXN0OiAwLAogICAgICAgIGNhdWdodDogW10sCiAgICAgICAgaW5mb3M6IHt9LAogICAgICAgIGRlQWRqdXN0OiAoZnVuY3Rpb24oYWRqdXN0ZWQpIHsKICAgICAgICAgICAgaWYgKCFhZGp1c3RlZCB8fCBFWENFUFRJT05TLmluZm9zW2FkanVzdGVkXSkgcmV0dXJuIGFkanVzdGVkOwogICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gRVhDRVBUSU9OUy5pbmZvcykgewogICAgICAgICAgICAgICAgdmFyIHB0ciA9ICtrZXk7CiAgICAgICAgICAgICAgICB2YXIgaW5mbyA9IEVYQ0VQVElPTlMuaW5mb3NbcHRyXTsKICAgICAgICAgICAgICAgIGlmIChpbmZvLmFkanVzdGVkID09PSBhZGp1c3RlZCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBwdHIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gYWRqdXN0ZWQKICAgICAgICB9KSwKICAgICAgICBhZGRSZWY6IChmdW5jdGlvbihwdHIpIHsKICAgICAgICAgICAgaWYgKCFwdHIpIHJldHVybjsKICAgICAgICAgICAgdmFyIGluZm8gPSBFWENFUFRJT05TLmluZm9zW3B0cl07CiAgICAgICAgICAgIGluZm8ucmVmY291bnQrKwogICAgICAgIH0pLAogICAgICAgIGRlY1JlZjogKGZ1bmN0aW9uKHB0cikgewogICAgICAgICAgICBpZiAoIXB0cikgcmV0dXJuOwogICAgICAgICAgICB2YXIgaW5mbyA9IEVYQ0VQVElPTlMuaW5mb3NbcHRyXTsKICAgICAgICAgICAgYXNzZXJ0KGluZm8ucmVmY291bnQgPiAwKTsKICAgICAgICAgICAgaW5mby5yZWZjb3VudC0tOwogICAgICAgICAgICBpZiAoaW5mby5yZWZjb3VudCA9PT0gMCAmJiAhaW5mby5yZXRocm93bikgewogICAgICAgICAgICAgICAgaWYgKGluZm8uZGVzdHJ1Y3RvcikgewogICAgICAgICAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aSJdKGluZm8uZGVzdHJ1Y3RvciwgcHRyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZGVsZXRlIEVYQ0VQVElPTlMuaW5mb3NbcHRyXTsKICAgICAgICAgICAgICAgIF9fX2N4YV9mcmVlX2V4Y2VwdGlvbihwdHIpCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBjbGVhclJlZjogKGZ1bmN0aW9uKHB0cikgewogICAgICAgICAgICBpZiAoIXB0cikgcmV0dXJuOwogICAgICAgICAgICB2YXIgaW5mbyA9IEVYQ0VQVElPTlMuaW5mb3NbcHRyXTsKICAgICAgICAgICAgaW5mby5yZWZjb3VudCA9IDAKICAgICAgICB9KQogICAgfTsKCiAgICBmdW5jdGlvbiBfX19jeGFfYmVnaW5fY2F0Y2gocHRyKSB7CiAgICAgICAgdmFyIGluZm8gPSBFWENFUFRJT05TLmluZm9zW3B0cl07CiAgICAgICAgaWYgKGluZm8gJiYgIWluZm8uY2F1Z2h0KSB7CiAgICAgICAgICAgIGluZm8uY2F1Z2h0ID0gdHJ1ZTsKICAgICAgICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uLS0KICAgICAgICB9CiAgICAgICAgaWYgKGluZm8pIGluZm8ucmV0aHJvd24gPSBmYWxzZTsKICAgICAgICBFWENFUFRJT05TLmNhdWdodC5wdXNoKHB0cik7CiAgICAgICAgRVhDRVBUSU9OUy5hZGRSZWYoRVhDRVBUSU9OUy5kZUFkanVzdChwdHIpKTsKICAgICAgICByZXR1cm4gcHRyCiAgICB9CgogICAgZnVuY3Rpb24gX19fY3hhX2ZyZWVfZXhjZXB0aW9uKHB0cikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBfZnJlZShwdHIpCiAgICAgICAgfSBjYXRjaCAoZSkge30KICAgIH0KCiAgICBmdW5jdGlvbiBfX19jeGFfZW5kX2NhdGNoKCkgewogICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgwKTsKICAgICAgICB2YXIgcHRyID0gRVhDRVBUSU9OUy5jYXVnaHQucG9wKCk7CiAgICAgICAgaWYgKHB0cikgewogICAgICAgICAgICBFWENFUFRJT05TLmRlY1JlZihFWENFUFRJT05TLmRlQWRqdXN0KHB0cikpOwogICAgICAgICAgICBFWENFUFRJT05TLmxhc3QgPSAwCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoXzIoKSB7CiAgICAgICAgcmV0dXJuIF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0KCiAgICBmdW5jdGlvbiBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaF8zKCkgewogICAgICAgIHJldHVybiBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaC5hcHBseShudWxsLCBhcmd1bWVudHMpCiAgICB9CgogICAgZnVuY3Rpb24gX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2hfNCgpIHsKICAgICAgICByZXR1cm4gX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2guYXBwbHkobnVsbCwgYXJndW1lbnRzKQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX2N4YV9wdXJlX3ZpcnR1YWwoKSB7CiAgICAgICAgQUJPUlQgPSB0cnVlOwogICAgICAgIHRocm93ICJQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkISIKICAgIH0KCiAgICBmdW5jdGlvbiBfX19jeGFfcmV0aHJvdygpIHsKICAgICAgICB2YXIgcHRyID0gRVhDRVBUSU9OUy5jYXVnaHQucG9wKCk7CiAgICAgICAgcHRyID0gRVhDRVBUSU9OUy5kZUFkanVzdChwdHIpOwogICAgICAgIGlmICghRVhDRVBUSU9OUy5pbmZvc1twdHJdLnJldGhyb3duKSB7CiAgICAgICAgICAgIEVYQ0VQVElPTlMuY2F1Z2h0LnB1c2gocHRyKTsKICAgICAgICAgICAgRVhDRVBUSU9OUy5pbmZvc1twdHJdLnJldGhyb3duID0gdHJ1ZQogICAgICAgIH0KICAgICAgICBFWENFUFRJT05TLmxhc3QgPSBwdHI7CiAgICAgICAgdGhyb3cgcHRyCiAgICB9CgogICAgZnVuY3Rpb24gX19fcmVzdW1lRXhjZXB0aW9uKHB0cikgewogICAgICAgIGlmICghRVhDRVBUSU9OUy5sYXN0KSB7CiAgICAgICAgICAgIEVYQ0VQVElPTlMubGFzdCA9IHB0cgogICAgICAgIH0KICAgICAgICB0aHJvdyBwdHIKICAgIH0KCiAgICBmdW5jdGlvbiBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaCgpIHsKICAgICAgICB2YXIgdGhyb3duID0gRVhDRVBUSU9OUy5sYXN0OwogICAgICAgIGlmICghdGhyb3duKSB7CiAgICAgICAgICAgIHJldHVybiAoc2V0VGVtcFJldDAoMCksIDApIHwgMAogICAgICAgIH0KICAgICAgICB2YXIgaW5mbyA9IEVYQ0VQVElPTlMuaW5mb3NbdGhyb3duXTsKICAgICAgICB2YXIgdGhyb3dudHlwZSA9IGluZm8udHlwZTsKICAgICAgICBpZiAoIXRocm93bnR5cGUpIHsKICAgICAgICAgICAgcmV0dXJuIChzZXRUZW1wUmV0MCgwKSwgdGhyb3duKSB8IDAKICAgICAgICB9CiAgICAgICAgdmFyIHR5cGVBcnJheSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7CiAgICAgICAgdmFyIHBvaW50ZXIgPSBNb2R1bGVbIl9fX2N4YV9pc19wb2ludGVyX3R5cGUiXSh0aHJvd250eXBlKTsKICAgICAgICBpZiAoIV9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoLmJ1ZmZlcikgX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2guYnVmZmVyID0gX21hbGxvYyg0KTsKICAgICAgICBIRUFQMzJbX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2guYnVmZmVyID4+IDJdID0gdGhyb3duOwogICAgICAgIHRocm93biA9IF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoLmJ1ZmZlcjsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVBcnJheS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAodHlwZUFycmF5W2ldICYmIE1vZHVsZVsiX19fY3hhX2Nhbl9jYXRjaCJdKHR5cGVBcnJheVtpXSwgdGhyb3dudHlwZSwgdGhyb3duKSkgewogICAgICAgICAgICAgICAgdGhyb3duID0gSEVBUDMyW3Rocm93biA+PiAyXTsKICAgICAgICAgICAgICAgIGluZm8uYWRqdXN0ZWQgPSB0aHJvd247CiAgICAgICAgICAgICAgICByZXR1cm4gKHNldFRlbXBSZXQwKHR5cGVBcnJheVtpXSksIHRocm93bikgfCAwCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGhyb3duID0gSEVBUDMyW3Rocm93biA+PiAyXTsKICAgICAgICByZXR1cm4gKHNldFRlbXBSZXQwKHRocm93bnR5cGUpLCB0aHJvd24pIHwgMAogICAgfQoKICAgIGZ1bmN0aW9uIF9fX2N4YV90aHJvdyhwdHIsIHR5cGUsIGRlc3RydWN0b3IpIHsKICAgICAgICBFWENFUFRJT05TLmluZm9zW3B0cl0gPSB7CiAgICAgICAgICAgIHB0cjogcHRyLAogICAgICAgICAgICBhZGp1c3RlZDogcHRyLAogICAgICAgICAgICB0eXBlOiB0eXBlLAogICAgICAgICAgICBkZXN0cnVjdG9yOiBkZXN0cnVjdG9yLAogICAgICAgICAgICByZWZjb3VudDogMCwKICAgICAgICAgICAgY2F1Z2h0OiBmYWxzZSwKICAgICAgICAgICAgcmV0aHJvd246IGZhbHNlCiAgICAgICAgfTsKICAgICAgICBFWENFUFRJT05TLmxhc3QgPSBwdHI7CiAgICAgICAgaWYgKCEoInVuY2F1Z2h0X2V4Y2VwdGlvbiIgaW4gX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYpKSB7CiAgICAgICAgICAgIF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbiA9IDEKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udi51bmNhdWdodF9leGNlcHRpb24rKwogICAgICAgIH0KICAgICAgICB0aHJvdyBwdHIKICAgIH0KCiAgICBmdW5jdGlvbiBfX19neHhfcGVyc29uYWxpdHlfdjAoKSB7fQoKICAgIGZ1bmN0aW9uIF9fX2xvY2soKSB7fQoKICAgIGZ1bmN0aW9uIF9fX21hcF9maWxlKHBhdGhuYW1lLCBzaXplKSB7CiAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRVBFUk0pOwogICAgICAgIHJldHVybiAtMQogICAgfQogICAgdmFyIFNZU0NBTExTID0gewogICAgICAgIERFRkFVTFRfUE9MTE1BU0s6IDUsCiAgICAgICAgbWFwcGluZ3M6IHt9LAogICAgICAgIHVtYXNrOiA1MTEsCiAgICAgICAgY2FsY3VsYXRlQXQ6IChmdW5jdGlvbihkaXJmZCwgcGF0aCkgewogICAgICAgICAgICBpZiAocGF0aFswXSAhPT0gIi8iKSB7CiAgICAgICAgICAgICAgICB2YXIgZGlyOwogICAgICAgICAgICAgICAgaWYgKGRpcmZkID09PSAtMTAwKSB7CiAgICAgICAgICAgICAgICAgICAgZGlyID0gRlMuY3dkKCkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRpcnN0cmVhbSA9IEZTLmdldFN0cmVhbShkaXJmZCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFkaXJzdHJlYW0pIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKICAgICAgICAgICAgICAgICAgICBkaXIgPSBkaXJzdHJlYW0ucGF0aAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcGF0aCA9IFBBVEguam9pbjIoZGlyLCBwYXRoKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBwYXRoCiAgICAgICAgfSksCiAgICAgICAgZG9TdGF0OiAoZnVuY3Rpb24oZnVuYywgcGF0aCwgYnVmKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICB2YXIgc3RhdCA9IGZ1bmMocGF0aCkKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgaWYgKGUgJiYgZS5ub2RlICYmIFBBVEgubm9ybWFsaXplKHBhdGgpICE9PSBQQVRILm5vcm1hbGl6ZShGUy5nZXRQYXRoKGUubm9kZSkpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FUlJOT19DT0RFUy5FTk9URElSCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aHJvdyBlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgSEVBUDMyW2J1ZiA+PiAyXSA9IHN0YXQuZGV2OwogICAgICAgICAgICBIRUFQMzJbYnVmICsgNCA+PiAyXSA9IDA7CiAgICAgICAgICAgIEhFQVAzMltidWYgKyA4ID4+IDJdID0gc3RhdC5pbm87CiAgICAgICAgICAgIEhFQVAzMltidWYgKyAxMiA+PiAyXSA9IHN0YXQubW9kZTsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDE2ID4+IDJdID0gc3RhdC5ubGluazsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDIwID4+IDJdID0gc3RhdC51aWQ7CiAgICAgICAgICAgIEhFQVAzMltidWYgKyAyNCA+PiAyXSA9IHN0YXQuZ2lkOwogICAgICAgICAgICBIRUFQMzJbYnVmICsgMjggPj4gMl0gPSBzdGF0LnJkZXY7CiAgICAgICAgICAgIEhFQVAzMltidWYgKyAzMiA+PiAyXSA9IDA7CiAgICAgICAgICAgIEhFQVAzMltidWYgKyAzNiA+PiAyXSA9IHN0YXQuc2l6ZTsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDQwID4+IDJdID0gNDA5NjsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDQ0ID4+IDJdID0gc3RhdC5ibG9ja3M7CiAgICAgICAgICAgIEhFQVAzMltidWYgKyA0OCA+PiAyXSA9IHN0YXQuYXRpbWUuZ2V0VGltZSgpIC8gMWUzIHwgMDsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDUyID4+IDJdID0gMDsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDU2ID4+IDJdID0gc3RhdC5tdGltZS5nZXRUaW1lKCkgLyAxZTMgfCAwOwogICAgICAgICAgICBIRUFQMzJbYnVmICsgNjAgPj4gMl0gPSAwOwogICAgICAgICAgICBIRUFQMzJbYnVmICsgNjQgPj4gMl0gPSBzdGF0LmN0aW1lLmdldFRpbWUoKSAvIDFlMyB8IDA7CiAgICAgICAgICAgIEhFQVAzMltidWYgKyA2OCA+PiAyXSA9IDA7CiAgICAgICAgICAgIEhFQVAzMltidWYgKyA3MiA+PiAyXSA9IHN0YXQuaW5vOwogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0pLAogICAgICAgIGRvTXN5bmM6IChmdW5jdGlvbihhZGRyLCBzdHJlYW0sIGxlbiwgZmxhZ3MpIHsKICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KEhFQVBVOC5zdWJhcnJheShhZGRyLCBhZGRyICsgbGVuKSk7CiAgICAgICAgICAgIEZTLm1zeW5jKHN0cmVhbSwgYnVmZmVyLCAwLCBsZW4sIGZsYWdzKQogICAgICAgIH0pLAogICAgICAgIGRvTWtkaXI6IChmdW5jdGlvbihwYXRoLCBtb2RlKSB7CiAgICAgICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6ZShwYXRoKTsKICAgICAgICAgICAgaWYgKHBhdGhbcGF0aC5sZW5ndGggLSAxXSA9PT0gIi8iKSBwYXRoID0gcGF0aC5zdWJzdHIoMCwgcGF0aC5sZW5ndGggLSAxKTsKICAgICAgICAgICAgRlMubWtkaXIocGF0aCwgbW9kZSwgMCk7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfSksCiAgICAgICAgZG9Na25vZDogKGZ1bmN0aW9uKHBhdGgsIG1vZGUsIGRldikgewogICAgICAgICAgICBzd2l0Y2ggKG1vZGUgJiA2MTQ0MCkgewogICAgICAgICAgICAgICAgY2FzZSAzMjc2ODoKICAgICAgICAgICAgICAgIGNhc2UgODE5MjoKICAgICAgICAgICAgICAgIGNhc2UgMjQ1NzY6CiAgICAgICAgICAgICAgICBjYXNlIDQwOTY6CiAgICAgICAgICAgICAgICBjYXNlIDQ5MTUyOgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVSUk5PX0NPREVTLkVJTlZBTAogICAgICAgICAgICB9CiAgICAgICAgICAgIEZTLm1rbm9kKHBhdGgsIG1vZGUsIGRldik7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfSksCiAgICAgICAgZG9SZWFkbGluazogKGZ1bmN0aW9uKHBhdGgsIGJ1ZiwgYnVmc2l6ZSkgewogICAgICAgICAgICBpZiAoYnVmc2l6ZSA8PSAwKSByZXR1cm4gLUVSUk5PX0NPREVTLkVJTlZBTDsKICAgICAgICAgICAgdmFyIHJldCA9IEZTLnJlYWRsaW5rKHBhdGgpOwogICAgICAgICAgICB2YXIgbGVuID0gTWF0aC5taW4oYnVmc2l6ZSwgbGVuZ3RoQnl0ZXNVVEY4KHJldCkpOwogICAgICAgICAgICB2YXIgZW5kQ2hhciA9IEhFQVA4W2J1ZiArIGxlbl07CiAgICAgICAgICAgIHN0cmluZ1RvVVRGOChyZXQsIGJ1ZiwgYnVmc2l6ZSArIDEpOwogICAgICAgICAgICBIRUFQOFtidWYgKyBsZW5dID0gZW5kQ2hhcjsKICAgICAgICAgICAgcmV0dXJuIGxlbgogICAgICAgIH0pLAogICAgICAgIGRvQWNjZXNzOiAoZnVuY3Rpb24ocGF0aCwgYW1vZGUpIHsKICAgICAgICAgICAgaWYgKGFtb2RlICYgfjcpIHsKICAgICAgICAgICAgICAgIHJldHVybiAtRVJSTk9fQ09ERVMuRUlOVkFMCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIG5vZGU7CiAgICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsKICAgICAgICAgICAgICAgIGZvbGxvdzogdHJ1ZQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgbm9kZSA9IGxvb2t1cC5ub2RlOwogICAgICAgICAgICB2YXIgcGVybXMgPSAiIjsKICAgICAgICAgICAgaWYgKGFtb2RlICYgNCkgcGVybXMgKz0gInIiOwogICAgICAgICAgICBpZiAoYW1vZGUgJiAyKSBwZXJtcyArPSAidyI7CiAgICAgICAgICAgIGlmIChhbW9kZSAmIDEpIHBlcm1zICs9ICJ4IjsKICAgICAgICAgICAgaWYgKHBlcm1zICYmIEZTLm5vZGVQZXJtaXNzaW9ucyhub2RlLCBwZXJtcykpIHsKICAgICAgICAgICAgICAgIHJldHVybiAtRVJSTk9fQ09ERVMuRUFDQ0VTCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9KSwKICAgICAgICBkb0R1cDogKGZ1bmN0aW9uKHBhdGgsIGZsYWdzLCBzdWdnZXN0RkQpIHsKICAgICAgICAgICAgdmFyIHN1Z2dlc3QgPSBGUy5nZXRTdHJlYW0oc3VnZ2VzdEZEKTsKICAgICAgICAgICAgaWYgKHN1Z2dlc3QpIEZTLmNsb3NlKHN1Z2dlc3QpOwogICAgICAgICAgICByZXR1cm4gRlMub3BlbihwYXRoLCBmbGFncywgMCwgc3VnZ2VzdEZELCBzdWdnZXN0RkQpLmZkCiAgICAgICAgfSksCiAgICAgICAgZG9SZWFkdjogKGZ1bmN0aW9uKHN0cmVhbSwgaW92LCBpb3ZjbnQsIG9mZnNldCkgewogICAgICAgICAgICB2YXIgcmV0ID0gMDsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpb3ZjbnQ7IGkrKykgewogICAgICAgICAgICAgICAgdmFyIHB0ciA9IEhFQVAzMltpb3YgKyBpICogOCA+PiAyXTsKICAgICAgICAgICAgICAgIHZhciBsZW4gPSBIRUFQMzJbaW92ICsgKGkgKiA4ICsgNCkgPj4gMl07CiAgICAgICAgICAgICAgICB2YXIgY3VyciA9IEZTLnJlYWQoc3RyZWFtLCBIRUFQOCwgcHRyLCBsZW4sIG9mZnNldCk7CiAgICAgICAgICAgICAgICBpZiAoY3VyciA8IDApIHJldHVybiAtMTsKICAgICAgICAgICAgICAgIHJldCArPSBjdXJyOwogICAgICAgICAgICAgICAgaWYgKGN1cnIgPCBsZW4pIGJyZWFrCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgIH0pLAogICAgICAgIGRvV3JpdGV2OiAoZnVuY3Rpb24oc3RyZWFtLCBpb3YsIGlvdmNudCwgb2Zmc2V0KSB7CiAgICAgICAgICAgIHZhciByZXQgPSAwOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlvdmNudDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgcHRyID0gSEVBUDMyW2lvdiArIGkgKiA4ID4+IDJdOwogICAgICAgICAgICAgICAgdmFyIGxlbiA9IEhFQVAzMltpb3YgKyAoaSAqIDggKyA0KSA+PiAyXTsKICAgICAgICAgICAgICAgIHZhciBjdXJyID0gRlMud3JpdGUoc3RyZWFtLCBIRUFQOCwgcHRyLCBsZW4sIG9mZnNldCk7CiAgICAgICAgICAgICAgICBpZiAoY3VyciA8IDApIHJldHVybiAtMTsKICAgICAgICAgICAgICAgIHJldCArPSBjdXJyCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgIH0pLAogICAgICAgIHZhcmFyZ3M6IDAsCiAgICAgICAgZ2V0OiAoZnVuY3Rpb24odmFyYXJncykgewogICAgICAgICAgICBTWVNDQUxMUy52YXJhcmdzICs9IDQ7CiAgICAgICAgICAgIHZhciByZXQgPSBIRUFQMzJbU1lTQ0FMTFMudmFyYXJncyAtIDQgPj4gMl07CiAgICAgICAgICAgIHJldHVybiByZXQKICAgICAgICB9KSwKICAgICAgICBnZXRTdHI6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIHJldCA9IFBvaW50ZXJfc3RyaW5naWZ5KFNZU0NBTExTLmdldCgpKTsKICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgIH0pLAogICAgICAgIGdldFN0cmVhbUZyb21GRDogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKFNZU0NBTExTLmdldCgpKTsKICAgICAgICAgICAgaWYgKCFzdHJlYW0pIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVCQURGKTsKICAgICAgICAgICAgcmV0dXJuIHN0cmVhbQogICAgICAgIH0pLAogICAgICAgIGdldFNvY2tldEZyb21GRDogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgc29ja2V0ID0gU09DS0ZTLmdldFNvY2tldChTWVNDQUxMUy5nZXQoKSk7CiAgICAgICAgICAgIGlmICghc29ja2V0KSB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7CiAgICAgICAgICAgIHJldHVybiBzb2NrZXQKICAgICAgICB9KSwKICAgICAgICBnZXRTb2NrZXRBZGRyZXNzOiAoZnVuY3Rpb24oYWxsb3dOdWxsKSB7CiAgICAgICAgICAgIHZhciBhZGRycCA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgYWRkcmxlbiA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICBpZiAoYWxsb3dOdWxsICYmIGFkZHJwID09PSAwKSByZXR1cm4gbnVsbDsKICAgICAgICAgICAgdmFyIGluZm8gPSBfX3JlYWRfc29ja2FkZHIoYWRkcnAsIGFkZHJsZW4pOwogICAgICAgICAgICBpZiAoaW5mby5lcnJubykgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoaW5mby5lcnJubyk7CiAgICAgICAgICAgIGluZm8uYWRkciA9IEROUy5sb29rdXBfYWRkcihpbmZvLmFkZHIpIHx8IGluZm8uYWRkcjsKICAgICAgICAgICAgcmV0dXJuIGluZm8KICAgICAgICB9KSwKICAgICAgICBnZXQ2NDogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgbG93ID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICBoaWdoID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIGlmIChsb3cgPj0gMCkgYXNzZXJ0KGhpZ2ggPT09IDApOwogICAgICAgICAgICBlbHNlIGFzc2VydChoaWdoID09PSAtMSk7CiAgICAgICAgICAgIHJldHVybiBsb3cKICAgICAgICB9KSwKICAgICAgICBnZXRaZXJvOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGFzc2VydChTWVNDQUxMUy5nZXQoKSA9PT0gMCkKICAgICAgICB9KQogICAgfTsKCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsMTAod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgcGF0aCA9IFNZU0NBTExTLmdldFN0cigpOwogICAgICAgICAgICBGUy51bmxpbmsocGF0aCk7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KICAgIHZhciBTT0NLRlMgPSB7CiAgICAgICAgbW91bnQ6IChmdW5jdGlvbihtb3VudCkgewogICAgICAgICAgICBNb2R1bGVbIndlYnNvY2tldCJdID0gTW9kdWxlWyJ3ZWJzb2NrZXQiXSAmJiAib2JqZWN0IiA9PT0gdHlwZW9mIE1vZHVsZVsid2Vic29ja2V0Il0gPyBNb2R1bGVbIndlYnNvY2tldCJdIDoge307CiAgICAgICAgICAgIE1vZHVsZVsid2Vic29ja2V0Il0uX2NhbGxiYWNrcyA9IHt9OwogICAgICAgICAgICBNb2R1bGVbIndlYnNvY2tldCJdWyJvbiJdID0gKGZ1bmN0aW9uKGV2ZW50LCBjYWxsYmFjaykgewogICAgICAgICAgICAgICAgaWYgKCJmdW5jdGlvbiIgPT09IHR5cGVvZiBjYWxsYmFjaykgewogICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhbGxiYWNrc1tldmVudF0gPSBjYWxsYmFjawogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIE1vZHVsZVsid2Vic29ja2V0Il0uZW1pdCA9IChmdW5jdGlvbihldmVudCwgcGFyYW0pIHsKICAgICAgICAgICAgICAgIGlmICgiZnVuY3Rpb24iID09PSB0eXBlb2YgdGhpcy5fY2FsbGJhY2tzW2V2ZW50XSkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhbGxiYWNrc1tldmVudF0uY2FsbCh0aGlzLCBwYXJhbSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHJldHVybiBGUy5jcmVhdGVOb2RlKG51bGwsICIvIiwgMTYzODQgfCA1MTEsIDApCiAgICAgICAgfSksCiAgICAgICAgY3JlYXRlU29ja2V0OiAoZnVuY3Rpb24oZmFtaWx5LCB0eXBlLCBwcm90b2NvbCkgewogICAgICAgICAgICB2YXIgc3RyZWFtaW5nID0gdHlwZSA9PSAxOwogICAgICAgICAgICBpZiAocHJvdG9jb2wpIHsKICAgICAgICAgICAgICAgIGFzc2VydChzdHJlYW1pbmcgPT0gKHByb3RvY29sID09IDYpKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBzb2NrID0gewogICAgICAgICAgICAgICAgZmFtaWx5OiBmYW1pbHksCiAgICAgICAgICAgICAgICB0eXBlOiB0eXBlLAogICAgICAgICAgICAgICAgcHJvdG9jb2w6IHByb3RvY29sLAogICAgICAgICAgICAgICAgc2VydmVyOiBudWxsLAogICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsCiAgICAgICAgICAgICAgICBwZWVyczoge30sCiAgICAgICAgICAgICAgICBwZW5kaW5nOiBbXSwKICAgICAgICAgICAgICAgIHJlY3ZfcXVldWU6IFtdLAogICAgICAgICAgICAgICAgc29ja19vcHM6IFNPQ0tGUy53ZWJzb2NrZXRfc29ja19vcHMKICAgICAgICAgICAgfTsKICAgICAgICAgICAgdmFyIG5hbWUgPSBTT0NLRlMubmV4dG5hbWUoKTsKICAgICAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVOb2RlKFNPQ0tGUy5yb290LCBuYW1lLCA0OTE1MiwgMCk7CiAgICAgICAgICAgIG5vZGUuc29jayA9IHNvY2s7CiAgICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5jcmVhdGVTdHJlYW0oewogICAgICAgICAgICAgICAgcGF0aDogbmFtZSwKICAgICAgICAgICAgICAgIG5vZGU6IG5vZGUsCiAgICAgICAgICAgICAgICBmbGFnczogRlMubW9kZVN0cmluZ1RvRmxhZ3MoInIrIiksCiAgICAgICAgICAgICAgICBzZWVrYWJsZTogZmFsc2UsCiAgICAgICAgICAgICAgICBzdHJlYW1fb3BzOiBTT0NLRlMuc3RyZWFtX29wcwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgc29jay5zdHJlYW0gPSBzdHJlYW07CiAgICAgICAgICAgIHJldHVybiBzb2NrCiAgICAgICAgfSksCiAgICAgICAgZ2V0U29ja2V0OiAoZnVuY3Rpb24oZmQpIHsKICAgICAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7CiAgICAgICAgICAgIGlmICghc3RyZWFtIHx8ICFGUy5pc1NvY2tldChzdHJlYW0ubm9kZS5tb2RlKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gc3RyZWFtLm5vZGUuc29jawogICAgICAgIH0pLAogICAgICAgIHN0cmVhbV9vcHM6IHsKICAgICAgICAgICAgcG9sbDogKGZ1bmN0aW9uKHN0cmVhbSkgewogICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBzdHJlYW0ubm9kZS5zb2NrOwogICAgICAgICAgICAgICAgcmV0dXJuIHNvY2suc29ja19vcHMucG9sbChzb2NrKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgaW9jdGw6IChmdW5jdGlvbihzdHJlYW0sIHJlcXVlc3QsIHZhcmFyZ3MpIHsKICAgICAgICAgICAgICAgIHZhciBzb2NrID0gc3RyZWFtLm5vZGUuc29jazsKICAgICAgICAgICAgICAgIHJldHVybiBzb2NrLnNvY2tfb3BzLmlvY3RsKHNvY2ssIHJlcXVlc3QsIHZhcmFyZ3MpCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICByZWFkOiAoZnVuY3Rpb24oc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewogICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBzdHJlYW0ubm9kZS5zb2NrOwogICAgICAgICAgICAgICAgdmFyIG1zZyA9IHNvY2suc29ja19vcHMucmVjdm1zZyhzb2NrLCBsZW5ndGgpOwogICAgICAgICAgICAgICAgaWYgKCFtc2cpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnVmZmVyLnNldChtc2cuYnVmZmVyLCBvZmZzZXQpOwogICAgICAgICAgICAgICAgcmV0dXJuIG1zZy5idWZmZXIubGVuZ3RoCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICB3cml0ZTogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKICAgICAgICAgICAgICAgIHZhciBzb2NrID0gc3RyZWFtLm5vZGUuc29jazsKICAgICAgICAgICAgICAgIHJldHVybiBzb2NrLnNvY2tfb3BzLnNlbmRtc2coc29jaywgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCkKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGNsb3NlOiAoZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgICAgICAgICAgICB2YXIgc29jayA9IHN0cmVhbS5ub2RlLnNvY2s7CiAgICAgICAgICAgICAgICBzb2NrLnNvY2tfb3BzLmNsb3NlKHNvY2spCiAgICAgICAgICAgIH0pCiAgICAgICAgfSwKICAgICAgICBuZXh0bmFtZTogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoIVNPQ0tGUy5uZXh0bmFtZS5jdXJyZW50KSB7CiAgICAgICAgICAgICAgICBTT0NLRlMubmV4dG5hbWUuY3VycmVudCA9IDAKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gInNvY2tldFsiICsgU09DS0ZTLm5leHRuYW1lLmN1cnJlbnQrKyArICJdIgogICAgICAgIH0pLAogICAgICAgIHdlYnNvY2tldF9zb2NrX29wczogewogICAgICAgICAgICBjcmVhdGVQZWVyOiAoZnVuY3Rpb24oc29jaywgYWRkciwgcG9ydCkgewogICAgICAgICAgICAgICAgdmFyIHdzOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhZGRyID09PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgICAgIHdzID0gYWRkcjsKICAgICAgICAgICAgICAgICAgICBhZGRyID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICBwb3J0ID0gbnVsbAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHdzKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHdzLl9zb2NrZXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWRkciA9IHdzLl9zb2NrZXQucmVtb3RlQWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAgICAgcG9ydCA9IHdzLl9zb2NrZXQucmVtb3RlUG9ydAogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSAvd3Nbc10/OlwvXC8oW146XSspOihcZCspLy5leGVjKHdzLnVybCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldlYlNvY2tldCBVUkwgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IHdzKHMpOi8vYWRkcmVzczpwb3J0IikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBhZGRyID0gcmVzdWx0WzFdOwogICAgICAgICAgICAgICAgICAgICAgICBwb3J0ID0gcGFyc2VJbnQocmVzdWx0WzJdLCAxMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydW50aW1lQ29uZmlnID0gTW9kdWxlWyJ3ZWJzb2NrZXQiXSAmJiAib2JqZWN0IiA9PT0gdHlwZW9mIE1vZHVsZVsid2Vic29ja2V0Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1cmwgPSAid3M6IyIucmVwbGFjZSgiIyIsICIvLyIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVudGltZUNvbmZpZykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCJzdHJpbmciID09PSB0eXBlb2YgTW9kdWxlWyJ3ZWJzb2NrZXQiXVsidXJsIl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSBNb2R1bGVbIndlYnNvY2tldCJdWyJ1cmwiXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmwgPT09ICJ3czovLyIgfHwgdXJsID09PSAid3NzOi8vIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnRzID0gYWRkci5zcGxpdCgiLyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsICsgcGFydHNbMF0gKyAiOiIgKyBwb3J0ICsgIi8iICsgcGFydHMuc2xpY2UoMSkuam9pbigiLyIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN1YlByb3RvY29scyA9ICJiaW5hcnkiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVudGltZUNvbmZpZykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCJzdHJpbmciID09PSB0eXBlb2YgTW9kdWxlWyJ3ZWJzb2NrZXQiXVsic3VicHJvdG9jb2wiXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YlByb3RvY29scyA9IE1vZHVsZVsid2Vic29ja2V0Il1bInN1YnByb3RvY29sIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBzdWJQcm90b2NvbHMgPSBzdWJQcm90b2NvbHMucmVwbGFjZSgvXiArfCArJC9nLCAiIikuc3BsaXQoLyAqLCAqLyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvcHRzID0gRU5WSVJPTk1FTlRfSVNfTk9ERSA/IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm90b2NvbCI6IHN1YlByb3RvY29scy50b1N0cmluZygpCiAgICAgICAgICAgICAgICAgICAgICAgIH0gOiBzdWJQcm90b2NvbHM7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydW50aW1lQ29uZmlnICYmIG51bGwgPT09IE1vZHVsZVsid2Vic29ja2V0Il1bInN1YnByb3RvY29sIl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YlByb3RvY29scyA9ICJudWxsIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMgPSB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgV2ViU29ja2V0Q29uc3RydWN0b3I7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChFTlZJUk9OTUVOVF9JU19OT0RFKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJTb2NrZXRDb25zdHJ1Y3RvciA9IHJlcXVpcmUoIndzIikKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChFTlZJUk9OTUVOVF9JU19XRUIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlNvY2tldENvbnN0cnVjdG9yID0gd2luZG93WyJXZWJTb2NrZXQiXQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViU29ja2V0Q29uc3RydWN0b3IgPSBXZWJTb2NrZXQKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB3cyA9IG5ldyBXZWJTb2NrZXRDb25zdHJ1Y3Rvcih1cmwsIG9wdHMpOwogICAgICAgICAgICAgICAgICAgICAgICB3cy5iaW5hcnlUeXBlID0gImFycmF5YnVmZmVyIgogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUhPU1RVTlJFQUNIKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBwZWVyID0gewogICAgICAgICAgICAgICAgICAgIGFkZHI6IGFkZHIsCiAgICAgICAgICAgICAgICAgICAgcG9ydDogcG9ydCwKICAgICAgICAgICAgICAgICAgICBzb2NrZXQ6IHdzLAogICAgICAgICAgICAgICAgICAgIGRncmFtX3NlbmRfcXVldWU6IFtdCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgU09DS0ZTLndlYnNvY2tldF9zb2NrX29wcy5hZGRQZWVyKHNvY2ssIHBlZXIpOwogICAgICAgICAgICAgICAgU09DS0ZTLndlYnNvY2tldF9zb2NrX29wcy5oYW5kbGVQZWVyRXZlbnRzKHNvY2ssIHBlZXIpOwogICAgICAgICAgICAgICAgaWYgKHNvY2sudHlwZSA9PT0gMiAmJiB0eXBlb2Ygc29jay5zcG9ydCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgICAgICBwZWVyLmRncmFtX3NlbmRfcXVldWUucHVzaChuZXcgVWludDhBcnJheShbMjU1LCAyNTUsIDI1NSwgMjU1LCAicCIuY2hhckNvZGVBdCgwKSwgIm8iLmNoYXJDb2RlQXQoMCksICJyIi5jaGFyQ29kZUF0KDApLCAidCIuY2hhckNvZGVBdCgwKSwgKHNvY2suc3BvcnQgJiA2NTI4MCkgPj4gOCwgc29jay5zcG9ydCAmIDI1NV0pKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHBlZXIKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGdldFBlZXI6IChmdW5jdGlvbihzb2NrLCBhZGRyLCBwb3J0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gc29jay5wZWVyc1thZGRyICsgIjoiICsgcG9ydF0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGFkZFBlZXI6IChmdW5jdGlvbihzb2NrLCBwZWVyKSB7CiAgICAgICAgICAgICAgICBzb2NrLnBlZXJzW3BlZXIuYWRkciArICI6IiArIHBlZXIucG9ydF0gPSBwZWVyCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICByZW1vdmVQZWVyOiAoZnVuY3Rpb24oc29jaywgcGVlcikgewogICAgICAgICAgICAgICAgZGVsZXRlIHNvY2sucGVlcnNbcGVlci5hZGRyICsgIjoiICsgcGVlci5wb3J0XQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgaGFuZGxlUGVlckV2ZW50czogKGZ1bmN0aW9uKHNvY2ssIHBlZXIpIHsKICAgICAgICAgICAgICAgIHZhciBmaXJzdCA9IHRydWU7CiAgICAgICAgICAgICAgICB2YXIgaGFuZGxlT3BlbiA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBNb2R1bGVbIndlYnNvY2tldCJdLmVtaXQoIm9wZW4iLCBzb2NrLnN0cmVhbS5mZCk7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHF1ZXVlZCA9IHBlZXIuZGdyYW1fc2VuZF9xdWV1ZS5zaGlmdCgpOwogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAocXVldWVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWVyLnNvY2tldC5zZW5kKHF1ZXVlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWV1ZWQgPSBwZWVyLmRncmFtX3NlbmRfcXVldWUuc2hpZnQoKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgICAgICBwZWVyLnNvY2tldC5jbG9zZSgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZiBkYXRhICE9PSAic3RyaW5nIiAmJiBkYXRhLmJ5dGVMZW5ndGggIT09IHVuZGVmaW5lZCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuYnl0ZUxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHdhc2ZpcnN0ID0gZmlyc3Q7CiAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZiAod2FzZmlyc3QgJiYgZGF0YS5sZW5ndGggPT09IDEwICYmIGRhdGFbMF0gPT09IDI1NSAmJiBkYXRhWzFdID09PSAyNTUgJiYgZGF0YVsyXSA9PT0gMjU1ICYmIGRhdGFbM10gPT09IDI1NSAmJiBkYXRhWzRdID09PSAicCIuY2hhckNvZGVBdCgwKSAmJiBkYXRhWzVdID09PSAibyIuY2hhckNvZGVBdCgwKSAmJiBkYXRhWzZdID09PSAiciIuY2hhckNvZGVBdCgwKSAmJiBkYXRhWzddID09PSAidCIuY2hhckNvZGVBdCgwKSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3cG9ydCA9IGRhdGFbOF0gPDwgOCB8IGRhdGFbOV07CiAgICAgICAgICAgICAgICAgICAgICAgIFNPQ0tGUy53ZWJzb2NrZXRfc29ja19vcHMucmVtb3ZlUGVlcihzb2NrLCBwZWVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgcGVlci5wb3J0ID0gbmV3cG9ydDsKICAgICAgICAgICAgICAgICAgICAgICAgU09DS0ZTLndlYnNvY2tldF9zb2NrX29wcy5hZGRQZWVyKHNvY2ssIHBlZXIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgc29jay5yZWN2X3F1ZXVlLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICBhZGRyOiBwZWVyLmFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ6IHBlZXIucG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIE1vZHVsZVsid2Vic29ja2V0Il0uZW1pdCgibWVzc2FnZSIsIHNvY2suc3RyZWFtLmZkKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKEVOVklST05NRU5UX0lTX05PREUpIHsKICAgICAgICAgICAgICAgICAgICBwZWVyLnNvY2tldC5vbigib3BlbiIsIGhhbmRsZU9wZW4pOwogICAgICAgICAgICAgICAgICAgIHBlZXIuc29ja2V0Lm9uKCJtZXNzYWdlIiwgKGZ1bmN0aW9uKGRhdGEsIGZsYWdzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmxhZ3MuYmluYXJ5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVNZXNzYWdlKChuZXcgVWludDhBcnJheShkYXRhKSkuYnVmZmVyKQogICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICBwZWVyLnNvY2tldC5vbigiY2xvc2UiLCAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZVsid2Vic29ja2V0Il0uZW1pdCgiY2xvc2UiLCBzb2NrLnN0cmVhbS5mZCkKICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgcGVlci5zb2NrZXQub24oImVycm9yIiwgKGZ1bmN0aW9uKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNvY2suZXJyb3IgPSBFUlJOT19DT0RFUy5FQ09OTlJFRlVTRUQ7CiAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZVsid2Vic29ja2V0Il0uZW1pdCgiZXJyb3IiLCBbc29jay5zdHJlYW0uZmQsIHNvY2suZXJyb3IsICJFQ09OTlJFRlVTRUQ6IENvbm5lY3Rpb24gcmVmdXNlZCJdKQogICAgICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBwZWVyLnNvY2tldC5vbm9wZW4gPSBoYW5kbGVPcGVuOwogICAgICAgICAgICAgICAgICAgIHBlZXIuc29ja2V0Lm9uY2xvc2UgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZVsid2Vic29ja2V0Il0uZW1pdCgiY2xvc2UiLCBzb2NrLnN0cmVhbS5mZCkKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBwZWVyLnNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbiBwZWVyX3NvY2tldF9vbm1lc3NhZ2UoZXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlTWVzc2FnZShldmVudC5kYXRhKQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgcGVlci5zb2NrZXQub25lcnJvciA9IChmdW5jdGlvbihlcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICBzb2NrLmVycm9yID0gRVJSTk9fQ09ERVMuRUNPTk5SRUZVU0VEOwogICAgICAgICAgICAgICAgICAgICAgICBNb2R1bGVbIndlYnNvY2tldCJdLmVtaXQoImVycm9yIiwgW3NvY2suc3RyZWFtLmZkLCBzb2NrLmVycm9yLCAiRUNPTk5SRUZVU0VEOiBDb25uZWN0aW9uIHJlZnVzZWQiXSkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcG9sbDogKGZ1bmN0aW9uKHNvY2spIHsKICAgICAgICAgICAgICAgIGlmIChzb2NrLnR5cGUgPT09IDEgJiYgc29jay5zZXJ2ZXIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gc29jay5wZW5kaW5nLmxlbmd0aCA/IDY0IHwgMSA6IDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBtYXNrID0gMDsKICAgICAgICAgICAgICAgIHZhciBkZXN0ID0gc29jay50eXBlID09PSAxID8gU09DS0ZTLndlYnNvY2tldF9zb2NrX29wcy5nZXRQZWVyKHNvY2ssIHNvY2suZGFkZHIsIHNvY2suZHBvcnQpIDogbnVsbDsKICAgICAgICAgICAgICAgIGlmIChzb2NrLnJlY3ZfcXVldWUubGVuZ3RoIHx8ICFkZXN0IHx8IGRlc3QgJiYgZGVzdC5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gZGVzdC5zb2NrZXQuQ0xPU0lORyB8fCBkZXN0ICYmIGRlc3Quc29ja2V0LnJlYWR5U3RhdGUgPT09IGRlc3Quc29ja2V0LkNMT1NFRCkgewogICAgICAgICAgICAgICAgICAgIG1hc2sgfD0gNjQgfCAxCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIWRlc3QgfHwgZGVzdCAmJiBkZXN0LnNvY2tldC5yZWFkeVN0YXRlID09PSBkZXN0LnNvY2tldC5PUEVOKSB7CiAgICAgICAgICAgICAgICAgICAgbWFzayB8PSA0CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoZGVzdCAmJiBkZXN0LnNvY2tldC5yZWFkeVN0YXRlID09PSBkZXN0LnNvY2tldC5DTE9TSU5HIHx8IGRlc3QgJiYgZGVzdC5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gZGVzdC5zb2NrZXQuQ0xPU0VEKSB7CiAgICAgICAgICAgICAgICAgICAgbWFzayB8PSAxNgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIG1hc2sKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGlvY3RsOiAoZnVuY3Rpb24oc29jaywgcmVxdWVzdCwgYXJnKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlIDIxNTMxOgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYnl0ZXMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc29jay5yZWN2X3F1ZXVlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXMgPSBzb2NrLnJlY3ZfcXVldWVbMF0uZGF0YS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBIRUFQMzJbYXJnID4+IDJdID0gYnl0ZXM7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSU5WQUwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGNsb3NlOiAoZnVuY3Rpb24oc29jaykgewogICAgICAgICAgICAgICAgaWYgKHNvY2suc2VydmVyKSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgc29jay5zZXJ2ZXIuY2xvc2UoKQogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9CiAgICAgICAgICAgICAgICAgICAgc29jay5zZXJ2ZXIgPSBudWxsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgcGVlcnMgPSBPYmplY3Qua2V5cyhzb2NrLnBlZXJzKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGVlcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcGVlciA9IHNvY2sucGVlcnNbcGVlcnNbaV1dOwogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBlZXIuc29ja2V0LmNsb3NlKCkKICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICAgICAgICAgIFNPQ0tGUy53ZWJzb2NrZXRfc29ja19vcHMucmVtb3ZlUGVlcihzb2NrLCBwZWVyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGJpbmQ6IChmdW5jdGlvbihzb2NrLCBhZGRyLCBwb3J0KSB7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHNvY2suc2FkZHIgIT09ICJ1bmRlZmluZWQiIHx8IHR5cGVvZiBzb2NrLnNwb3J0ICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHNvY2suc2FkZHIgPSBhZGRyOwogICAgICAgICAgICAgICAgc29jay5zcG9ydCA9IHBvcnQ7CiAgICAgICAgICAgICAgICBpZiAoc29jay50eXBlID09PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHNvY2suc2VydmVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNvY2suc2VydmVyLmNsb3NlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHNvY2suc2VydmVyID0gbnVsbAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICBzb2NrLnNvY2tfb3BzLmxpc3Rlbihzb2NrLCAwKQogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSB0aHJvdyBlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5lcnJubyAhPT0gRVJSTk9fQ09ERVMuRU9QTk9UU1VQUCkgdGhyb3cgZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGNvbm5lY3Q6IChmdW5jdGlvbihzb2NrLCBhZGRyLCBwb3J0KSB7CiAgICAgICAgICAgICAgICBpZiAoc29jay5zZXJ2ZXIpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FT1BOT1RTVVBQKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzb2NrLmRhZGRyICE9PSAidW5kZWZpbmVkIiAmJiB0eXBlb2Ygc29jay5kcG9ydCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzdCA9IFNPQ0tGUy53ZWJzb2NrZXRfc29ja19vcHMuZ2V0UGVlcihzb2NrLCBzb2NrLmRhZGRyLCBzb2NrLmRwb3J0KTsKICAgICAgICAgICAgICAgICAgICBpZiAoZGVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVzdC5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gZGVzdC5zb2NrZXQuQ09OTkVDVElORykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFMUkVBRFkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNDT05OKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHBlZXIgPSBTT0NLRlMud2Vic29ja2V0X3NvY2tfb3BzLmNyZWF0ZVBlZXIoc29jaywgYWRkciwgcG9ydCk7CiAgICAgICAgICAgICAgICBzb2NrLmRhZGRyID0gcGVlci5hZGRyOwogICAgICAgICAgICAgICAgc29jay5kcG9ydCA9IHBlZXIucG9ydDsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlBST0dSRVNTKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgbGlzdGVuOiAoZnVuY3Rpb24oc29jaywgYmFja2xvZykgewogICAgICAgICAgICAgICAgaWYgKCFFTlZJUk9OTUVOVF9JU19OT0RFKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU9QTk9UU1VQUCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChzb2NrLnNlcnZlcikgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBXZWJTb2NrZXRTZXJ2ZXIgPSByZXF1aXJlKCJ3cyIpLlNlcnZlcjsKICAgICAgICAgICAgICAgIHZhciBob3N0ID0gc29jay5zYWRkcjsKICAgICAgICAgICAgICAgIHNvY2suc2VydmVyID0gbmV3IFdlYlNvY2tldFNlcnZlcih7CiAgICAgICAgICAgICAgICAgICAgaG9zdDogaG9zdCwKICAgICAgICAgICAgICAgICAgICBwb3J0OiBzb2NrLnNwb3J0CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIE1vZHVsZVsid2Vic29ja2V0Il0uZW1pdCgibGlzdGVuIiwgc29jay5zdHJlYW0uZmQpOwogICAgICAgICAgICAgICAgc29jay5zZXJ2ZXIub24oImNvbm5lY3Rpb24iLCAoZnVuY3Rpb24od3MpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoc29jay50eXBlID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdzb2NrID0gU09DS0ZTLmNyZWF0ZVNvY2tldChzb2NrLmZhbWlseSwgc29jay50eXBlLCBzb2NrLnByb3RvY29sKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBlZXIgPSBTT0NLRlMud2Vic29ja2V0X3NvY2tfb3BzLmNyZWF0ZVBlZXIobmV3c29jaywgd3MpOwogICAgICAgICAgICAgICAgICAgICAgICBuZXdzb2NrLmRhZGRyID0gcGVlci5hZGRyOwogICAgICAgICAgICAgICAgICAgICAgICBuZXdzb2NrLmRwb3J0ID0gcGVlci5wb3J0OwogICAgICAgICAgICAgICAgICAgICAgICBzb2NrLnBlbmRpbmcucHVzaChuZXdzb2NrKTsKICAgICAgICAgICAgICAgICAgICAgICAgTW9kdWxlWyJ3ZWJzb2NrZXQiXS5lbWl0KCJjb25uZWN0aW9uIiwgbmV3c29jay5zdHJlYW0uZmQpCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgU09DS0ZTLndlYnNvY2tldF9zb2NrX29wcy5jcmVhdGVQZWVyKHNvY2ssIHdzKTsKICAgICAgICAgICAgICAgICAgICAgICAgTW9kdWxlWyJ3ZWJzb2NrZXQiXS5lbWl0KCJjb25uZWN0aW9uIiwgc29jay5zdHJlYW0uZmQpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgc29jay5zZXJ2ZXIub24oImNsb3NlZCIsIChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBNb2R1bGVbIndlYnNvY2tldCJdLmVtaXQoImNsb3NlIiwgc29jay5zdHJlYW0uZmQpOwogICAgICAgICAgICAgICAgICAgIHNvY2suc2VydmVyID0gbnVsbAogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgc29jay5zZXJ2ZXIub24oImVycm9yIiwgKGZ1bmN0aW9uKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgc29jay5lcnJvciA9IEVSUk5PX0NPREVTLkVIT1NUVU5SRUFDSDsKICAgICAgICAgICAgICAgICAgICBNb2R1bGVbIndlYnNvY2tldCJdLmVtaXQoImVycm9yIiwgW3NvY2suc3RyZWFtLmZkLCBzb2NrLmVycm9yLCAiRUhPU1RVTlJFQUNIOiBIb3N0IGlzIHVucmVhY2hhYmxlIl0pCiAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGFjY2VwdDogKGZ1bmN0aW9uKGxpc3RlbnNvY2spIHsKICAgICAgICAgICAgICAgIGlmICghbGlzdGVuc29jay5zZXJ2ZXIpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgbmV3c29jayA9IGxpc3RlbnNvY2sucGVuZGluZy5zaGlmdCgpOwogICAgICAgICAgICAgICAgbmV3c29jay5zdHJlYW0uZmxhZ3MgPSBsaXN0ZW5zb2NrLnN0cmVhbS5mbGFnczsKICAgICAgICAgICAgICAgIHJldHVybiBuZXdzb2NrCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBnZXRuYW1lOiAoZnVuY3Rpb24oc29jaywgcGVlcikgewogICAgICAgICAgICAgICAgdmFyIGFkZHIsIHBvcnQ7CiAgICAgICAgICAgICAgICBpZiAocGVlcikgewogICAgICAgICAgICAgICAgICAgIGlmIChzb2NrLmRhZGRyID09PSB1bmRlZmluZWQgfHwgc29jay5kcG9ydCA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RDT05OKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBhZGRyID0gc29jay5kYWRkcjsKICAgICAgICAgICAgICAgICAgICBwb3J0ID0gc29jay5kcG9ydAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBhZGRyID0gc29jay5zYWRkciB8fCAwOwogICAgICAgICAgICAgICAgICAgIHBvcnQgPSBzb2NrLnNwb3J0IHx8IDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgYWRkcjogYWRkciwKICAgICAgICAgICAgICAgICAgICBwb3J0OiBwb3J0CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBzZW5kbXNnOiAoZnVuY3Rpb24oc29jaywgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgYWRkciwgcG9ydCkgewogICAgICAgICAgICAgICAgaWYgKHNvY2sudHlwZSA9PT0gMikgewogICAgICAgICAgICAgICAgICAgIGlmIChhZGRyID09PSB1bmRlZmluZWQgfHwgcG9ydCA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHIgPSBzb2NrLmRhZGRyOwogICAgICAgICAgICAgICAgICAgICAgICBwb3J0ID0gc29jay5kcG9ydAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoYWRkciA9PT0gdW5kZWZpbmVkIHx8IHBvcnQgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FREVTVEFERFJSRVEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBhZGRyID0gc29jay5kYWRkcjsKICAgICAgICAgICAgICAgICAgICBwb3J0ID0gc29jay5kcG9ydAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRlc3QgPSBTT0NLRlMud2Vic29ja2V0X3NvY2tfb3BzLmdldFBlZXIoc29jaywgYWRkciwgcG9ydCk7CiAgICAgICAgICAgICAgICBpZiAoc29jay50eXBlID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFkZXN0IHx8IGRlc3Quc29ja2V0LnJlYWR5U3RhdGUgPT09IGRlc3Quc29ja2V0LkNMT1NJTkcgfHwgZGVzdC5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gZGVzdC5zb2NrZXQuQ0xPU0VEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT1RDT05OKQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVzdC5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gZGVzdC5zb2NrZXQuQ09OTkVDVElORykgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUdBSU4pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhidWZmZXIpKSB7CiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGJ1ZmZlci5ieXRlT2Zmc2V0OwogICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5idWZmZXIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBkYXRhOwogICAgICAgICAgICAgICAgZGF0YSA9IGJ1ZmZlci5zbGljZShvZmZzZXQsIG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICAgICAgICBpZiAoc29jay50eXBlID09PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFkZXN0IHx8IGRlc3Quc29ja2V0LnJlYWR5U3RhdGUgIT09IGRlc3Quc29ja2V0Lk9QRU4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkZXN0IHx8IGRlc3Quc29ja2V0LnJlYWR5U3RhdGUgPT09IGRlc3Quc29ja2V0LkNMT1NJTkcgfHwgZGVzdC5zb2NrZXQucmVhZHlTdGF0ZSA9PT0gZGVzdC5zb2NrZXQuQ0xPU0VEKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0ID0gU09DS0ZTLndlYnNvY2tldF9zb2NrX29wcy5jcmVhdGVQZWVyKHNvY2ssIGFkZHIsIHBvcnQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzdC5kZ3JhbV9zZW5kX3F1ZXVlLnB1c2goZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsZW5ndGgKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGRlc3Quc29ja2V0LnNlbmQoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aAogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIHJlY3Ztc2c6IChmdW5jdGlvbihzb2NrLCBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIGlmIChzb2NrLnR5cGUgPT09IDEgJiYgc29jay5zZXJ2ZXIpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9UQ09OTikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBxdWV1ZWQgPSBzb2NrLnJlY3ZfcXVldWUuc2hpZnQoKTsKICAgICAgICAgICAgICAgIGlmICghcXVldWVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHNvY2sudHlwZSA9PT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGVzdCA9IFNPQ0tGUy53ZWJzb2NrZXRfc29ja19vcHMuZ2V0UGVlcihzb2NrLCBzb2NrLmRhZGRyLCBzb2NrLmRwb3J0KTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9UQ09OTikKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkZXN0LnNvY2tldC5yZWFkeVN0YXRlID09PSBkZXN0LnNvY2tldC5DTE9TSU5HIHx8IGRlc3Quc29ja2V0LnJlYWR5U3RhdGUgPT09IGRlc3Quc29ja2V0LkNMT1NFRCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBR0FJTikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVBR0FJTikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgcXVldWVkTGVuZ3RoID0gcXVldWVkLmRhdGEuYnl0ZUxlbmd0aCB8fCBxdWV1ZWQuZGF0YS5sZW5ndGg7CiAgICAgICAgICAgICAgICB2YXIgcXVldWVkT2Zmc2V0ID0gcXVldWVkLmRhdGEuYnl0ZU9mZnNldCB8fCAwOwogICAgICAgICAgICAgICAgdmFyIHF1ZXVlZEJ1ZmZlciA9IHF1ZXVlZC5kYXRhLmJ1ZmZlciB8fCBxdWV1ZWQuZGF0YTsKICAgICAgICAgICAgICAgIHZhciBieXRlc1JlYWQgPSBNYXRoLm1pbihsZW5ndGgsIHF1ZXVlZExlbmd0aCk7CiAgICAgICAgICAgICAgICB2YXIgcmVzID0gewogICAgICAgICAgICAgICAgICAgIGJ1ZmZlcjogbmV3IFVpbnQ4QXJyYXkocXVldWVkQnVmZmVyLCBxdWV1ZWRPZmZzZXQsIGJ5dGVzUmVhZCksCiAgICAgICAgICAgICAgICAgICAgYWRkcjogcXVldWVkLmFkZHIsCiAgICAgICAgICAgICAgICAgICAgcG9ydDogcXVldWVkLnBvcnQKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICBpZiAoc29jay50eXBlID09PSAxICYmIGJ5dGVzUmVhZCA8IHF1ZXVlZExlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIHZhciBieXRlc1JlbWFpbmluZyA9IHF1ZXVlZExlbmd0aCAtIGJ5dGVzUmVhZDsKICAgICAgICAgICAgICAgICAgICBxdWV1ZWQuZGF0YSA9IG5ldyBVaW50OEFycmF5KHF1ZXVlZEJ1ZmZlciwgcXVldWVkT2Zmc2V0ICsgYnl0ZXNSZWFkLCBieXRlc1JlbWFpbmluZyk7CiAgICAgICAgICAgICAgICAgICAgc29jay5yZWN2X3F1ZXVlLnVuc2hpZnQocXVldWVkKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHJlcwogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH07CgogICAgZnVuY3Rpb24gX19pbmV0X3B0b240X3JhdyhzdHIpIHsKICAgICAgICB2YXIgYiA9IHN0ci5zcGxpdCgiLiIpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICAgICAgICAgIHZhciB0bXAgPSBOdW1iZXIoYltpXSk7CiAgICAgICAgICAgIGlmIChpc05hTih0bXApKSByZXR1cm4gbnVsbDsKICAgICAgICAgICAgYltpXSA9IHRtcAogICAgICAgIH0KICAgICAgICByZXR1cm4gKGJbMF0gfCBiWzFdIDw8IDggfCBiWzJdIDw8IDE2IHwgYlszXSA8PCAyNCkgPj4+IDAKICAgIH0KCiAgICBmdW5jdGlvbiBfX2luZXRfcHRvbjZfcmF3KHN0cikgewogICAgICAgIHZhciB3b3JkczsKICAgICAgICB2YXIgdywgb2Zmc2V0LCB6OwogICAgICAgIHZhciB2YWxpZDZyZWd4ID0gL14oKD89Lio6OikoPyEuKjo6Lis6OikoOjopPyhbXGRBLUZdezEsNH06KDp8XGIpfCl7NX18KFtcZEEtRl17MSw0fTopezZ9KSgoKFtcZEEtRl17MSw0fSgoPyFcMyk6Onw6XGJ8JCkpfCg/IVwyXDMpKXsyfXwoKCgyWzAtNF18MVxkfFsxLTldKT9cZHwyNVswLTVdKVwuP1xiKXs0fSkkL2k7CiAgICAgICAgdmFyIHBhcnRzID0gW107CiAgICAgICAgaWYgKCF2YWxpZDZyZWd4LnRlc3Qoc3RyKSkgewogICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgIH0KICAgICAgICBpZiAoc3RyID09PSAiOjoiKSB7CiAgICAgICAgICAgIHJldHVybiBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0KICAgICAgICB9CiAgICAgICAgaWYgKHN0ci5pbmRleE9mKCI6OiIpID09PSAwKSB7CiAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKCI6OiIsICJaOiIpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoIjo6IiwgIjpaOiIpCiAgICAgICAgfQogICAgICAgIGlmIChzdHIuaW5kZXhPZigiLiIpID4gMCkgewogICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShuZXcgUmVnRXhwKCJbLl0iLCAiZyIpLCAiOiIpOwogICAgICAgICAgICB3b3JkcyA9IHN0ci5zcGxpdCgiOiIpOwogICAgICAgICAgICB3b3Jkc1t3b3Jkcy5sZW5ndGggLSA0XSA9IHBhcnNlSW50KHdvcmRzW3dvcmRzLmxlbmd0aCAtIDRdKSArIHBhcnNlSW50KHdvcmRzW3dvcmRzLmxlbmd0aCAtIDNdKSAqIDI1NjsKICAgICAgICAgICAgd29yZHNbd29yZHMubGVuZ3RoIC0gM10gPSBwYXJzZUludCh3b3Jkc1t3b3Jkcy5sZW5ndGggLSAyXSkgKyBwYXJzZUludCh3b3Jkc1t3b3Jkcy5sZW5ndGggLSAxXSkgKiAyNTY7CiAgICAgICAgICAgIHdvcmRzID0gd29yZHMuc2xpY2UoMCwgd29yZHMubGVuZ3RoIC0gMikKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB3b3JkcyA9IHN0ci5zcGxpdCgiOiIpCiAgICAgICAgfQogICAgICAgIG9mZnNldCA9IDA7CiAgICAgICAgeiA9IDA7CiAgICAgICAgZm9yICh3ID0gMDsgdyA8IHdvcmRzLmxlbmd0aDsgdysrKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygd29yZHNbd10gPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgICBpZiAod29yZHNbd10gPT09ICJaIikgewogICAgICAgICAgICAgICAgICAgIGZvciAoeiA9IDA7IHogPCA4IC0gd29yZHMubGVuZ3RoICsgMTsgeisrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRzW3cgKyB6XSA9IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0geiAtIDEKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcGFydHNbdyArIG9mZnNldF0gPSBfaHRvbnMocGFyc2VJbnQod29yZHNbd10sIDE2KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHBhcnRzW3cgKyBvZmZzZXRdID0gd29yZHNbd10KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gW3BhcnRzWzFdIDw8IDE2IHwgcGFydHNbMF0sIHBhcnRzWzNdIDw8IDE2IHwgcGFydHNbMl0sIHBhcnRzWzVdIDw8IDE2IHwgcGFydHNbNF0sIHBhcnRzWzddIDw8IDE2IHwgcGFydHNbNl1dCiAgICB9CiAgICB2YXIgRE5TID0gewogICAgICAgIGFkZHJlc3NfbWFwOiB7CiAgICAgICAgICAgIGlkOiAxLAogICAgICAgICAgICBhZGRyczoge30sCiAgICAgICAgICAgIG5hbWVzOiB7fQogICAgICAgIH0sCiAgICAgICAgbG9va3VwX25hbWU6IChmdW5jdGlvbihuYW1lKSB7CiAgICAgICAgICAgIHZhciByZXMgPSBfX2luZXRfcHRvbjRfcmF3KG5hbWUpOwogICAgICAgICAgICBpZiAocmVzICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmFtZQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlcyA9IF9faW5ldF9wdG9uNl9yYXcobmFtZSk7CiAgICAgICAgICAgIGlmIChyZXMgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuYW1lCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGFkZHI7CiAgICAgICAgICAgIGlmIChETlMuYWRkcmVzc19tYXAuYWRkcnNbbmFtZV0pIHsKICAgICAgICAgICAgICAgIGFkZHIgPSBETlMuYWRkcmVzc19tYXAuYWRkcnNbbmFtZV0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpZCA9IEROUy5hZGRyZXNzX21hcC5pZCsrOwogICAgICAgICAgICAgICAgYXNzZXJ0KGlkIDwgNjU1MzUsICJleGNlZWRlZCBtYXggYWRkcmVzcyBtYXBwaW5ncyBvZiA2NTUzNSIpOwogICAgICAgICAgICAgICAgYWRkciA9ICIxNzIuMjkuIiArIChpZCAmIDI1NSkgKyAiLiIgKyAoaWQgJiA2NTI4MCk7CiAgICAgICAgICAgICAgICBETlMuYWRkcmVzc19tYXAubmFtZXNbYWRkcl0gPSBuYW1lOwogICAgICAgICAgICAgICAgRE5TLmFkZHJlc3NfbWFwLmFkZHJzW25hbWVdID0gYWRkcgogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBhZGRyCiAgICAgICAgfSksCiAgICAgICAgbG9va3VwX2FkZHI6IChmdW5jdGlvbihhZGRyKSB7CiAgICAgICAgICAgIGlmIChETlMuYWRkcmVzc19tYXAubmFtZXNbYWRkcl0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBETlMuYWRkcmVzc19tYXAubmFtZXNbYWRkcl0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgIH0pCiAgICB9OwoKICAgIGZ1bmN0aW9uIF9faW5ldF9udG9wNF9yYXcoYWRkcikgewogICAgICAgIHJldHVybiAoYWRkciAmIDI1NSkgKyAiLiIgKyAoYWRkciA+PiA4ICYgMjU1KSArICIuIiArIChhZGRyID4+IDE2ICYgMjU1KSArICIuIiArIChhZGRyID4+IDI0ICYgMjU1KQogICAgfQoKICAgIGZ1bmN0aW9uIF9faW5ldF9udG9wNl9yYXcoaW50cykgewogICAgICAgIHZhciBzdHIgPSAiIjsKICAgICAgICB2YXIgd29yZCA9IDA7CiAgICAgICAgdmFyIGxvbmdlc3QgPSAwOwogICAgICAgIHZhciBsYXN0emVybyA9IDA7CiAgICAgICAgdmFyIHpzdGFydCA9IDA7CiAgICAgICAgdmFyIGxlbiA9IDA7CiAgICAgICAgdmFyIGkgPSAwOwogICAgICAgIHZhciBwYXJ0cyA9IFtpbnRzWzBdICYgNjU1MzUsIGludHNbMF0gPj4gMTYsIGludHNbMV0gJiA2NTUzNSwgaW50c1sxXSA+PiAxNiwgaW50c1syXSAmIDY1NTM1LCBpbnRzWzJdID4+IDE2LCBpbnRzWzNdICYgNjU1MzUsIGludHNbM10gPj4gMTZdOwogICAgICAgIHZhciBoYXNpcHY0ID0gdHJ1ZTsKICAgICAgICB2YXIgdjRwYXJ0ID0gIiI7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IDU7IGkrKykgewogICAgICAgICAgICBpZiAocGFydHNbaV0gIT09IDApIHsKICAgICAgICAgICAgICAgIGhhc2lwdjQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGhhc2lwdjQpIHsKICAgICAgICAgICAgdjRwYXJ0ID0gX19pbmV0X250b3A0X3JhdyhwYXJ0c1s2XSB8IHBhcnRzWzddIDw8IDE2KTsKICAgICAgICAgICAgaWYgKHBhcnRzWzVdID09PSAtMSkgewogICAgICAgICAgICAgICAgc3RyID0gIjo6ZmZmZjoiOwogICAgICAgICAgICAgICAgc3RyICs9IHY0cGFydDsKICAgICAgICAgICAgICAgIHJldHVybiBzdHIKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocGFydHNbNV0gPT09IDApIHsKICAgICAgICAgICAgICAgIHN0ciA9ICI6OiI7CiAgICAgICAgICAgICAgICBpZiAodjRwYXJ0ID09PSAiMC4wLjAuMCIpIHY0cGFydCA9ICIiOwogICAgICAgICAgICAgICAgaWYgKHY0cGFydCA9PT0gIjAuMC4wLjEiKSB2NHBhcnQgPSAiMSI7CiAgICAgICAgICAgICAgICBzdHIgKz0gdjRwYXJ0OwogICAgICAgICAgICAgICAgcmV0dXJuIHN0cgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAod29yZCA9IDA7IHdvcmQgPCA4OyB3b3JkKyspIHsKICAgICAgICAgICAgaWYgKHBhcnRzW3dvcmRdID09PSAwKSB7CiAgICAgICAgICAgICAgICBpZiAod29yZCAtIGxhc3R6ZXJvID4gMSkgewogICAgICAgICAgICAgICAgICAgIGxlbiA9IDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGxhc3R6ZXJvID0gd29yZDsKICAgICAgICAgICAgICAgIGxlbisrCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGxlbiA+IGxvbmdlc3QpIHsKICAgICAgICAgICAgICAgIGxvbmdlc3QgPSBsZW47CiAgICAgICAgICAgICAgICB6c3RhcnQgPSB3b3JkIC0gbG9uZ2VzdCArIDEKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgKHdvcmQgPSAwOyB3b3JkIDwgODsgd29yZCsrKSB7CiAgICAgICAgICAgIGlmIChsb25nZXN0ID4gMSkgewogICAgICAgICAgICAgICAgaWYgKHBhcnRzW3dvcmRdID09PSAwICYmIHdvcmQgPj0genN0YXJ0ICYmIHdvcmQgPCB6c3RhcnQgKyBsb25nZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmQgPT09IHpzdGFydCkgewogICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gIjoiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoenN0YXJ0ID09PSAwKSBzdHIgKz0gIjoiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3RyICs9IE51bWJlcihfbnRvaHMocGFydHNbd29yZF0gJiA2NTUzNSkpLnRvU3RyaW5nKDE2KTsKICAgICAgICAgICAgc3RyICs9IHdvcmQgPCA3ID8gIjoiIDogIiIKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0cgogICAgfQoKICAgIGZ1bmN0aW9uIF9fcmVhZF9zb2NrYWRkcihzYSwgc2FsZW4pIHsKICAgICAgICB2YXIgZmFtaWx5ID0gSEVBUDE2W3NhID4+IDFdOwogICAgICAgIHZhciBwb3J0ID0gX250b2hzKEhFQVAxNltzYSArIDIgPj4gMV0pOwogICAgICAgIHZhciBhZGRyOwogICAgICAgIHN3aXRjaCAoZmFtaWx5KSB7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIGlmIChzYWxlbiAhPT0gMTYpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgICAgICBlcnJubzogRVJSTk9fQ09ERVMuRUlOVkFMCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYWRkciA9IEhFQVAzMltzYSArIDQgPj4gMl07CiAgICAgICAgICAgICAgICBhZGRyID0gX19pbmV0X250b3A0X3JhdyhhZGRyKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgICAgaWYgKHNhbGVuICE9PSAyOCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVycm5vOiBFUlJOT19DT0RFUy5FSU5WQUwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhZGRyID0gW0hFQVAzMltzYSArIDggPj4gMl0sIEhFQVAzMltzYSArIDEyID4+IDJdLCBIRUFQMzJbc2EgKyAxNiA+PiAyXSwgSEVBUDMyW3NhICsgMjAgPj4gMl1dOwogICAgICAgICAgICAgICAgYWRkciA9IF9faW5ldF9udG9wNl9yYXcoYWRkcik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgZXJybm86IEVSUk5PX0NPREVTLkVBRk5PU1VQUE9SVAogICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgICBmYW1pbHk6IGZhbWlseSwKICAgICAgICAgICAgYWRkcjogYWRkciwKICAgICAgICAgICAgcG9ydDogcG9ydAogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX3dyaXRlX3NvY2thZGRyKHNhLCBmYW1pbHksIGFkZHIsIHBvcnQpIHsKICAgICAgICBzd2l0Y2ggKGZhbWlseSkgewogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICBhZGRyID0gX19pbmV0X3B0b240X3JhdyhhZGRyKTsKICAgICAgICAgICAgICAgIEhFQVAxNltzYSA+PiAxXSA9IGZhbWlseTsKICAgICAgICAgICAgICAgIEhFQVAzMltzYSArIDQgPj4gMl0gPSBhZGRyOwogICAgICAgICAgICAgICAgSEVBUDE2W3NhICsgMiA+PiAxXSA9IF9odG9ucyhwb3J0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgICAgYWRkciA9IF9faW5ldF9wdG9uNl9yYXcoYWRkcik7CiAgICAgICAgICAgICAgICBIRUFQMzJbc2EgPj4gMl0gPSBmYW1pbHk7CiAgICAgICAgICAgICAgICBIRUFQMzJbc2EgKyA4ID4+IDJdID0gYWRkclswXTsKICAgICAgICAgICAgICAgIEhFQVAzMltzYSArIDEyID4+IDJdID0gYWRkclsxXTsKICAgICAgICAgICAgICAgIEhFQVAzMltzYSArIDE2ID4+IDJdID0gYWRkclsyXTsKICAgICAgICAgICAgICAgIEhFQVAzMltzYSArIDIwID4+IDJdID0gYWRkclszXTsKICAgICAgICAgICAgICAgIEhFQVAxNltzYSArIDIgPj4gMV0gPSBfaHRvbnMocG9ydCk7CiAgICAgICAgICAgICAgICBIRUFQMzJbc2EgKyA0ID4+IDJdID0gMDsKICAgICAgICAgICAgICAgIEhFQVAzMltzYSArIDI0ID4+IDJdID0gMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICBlcnJubzogRVJSTk9fQ09ERVMuRUFGTk9TVVBQT1JUCiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7fQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGwxMDIod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgY2FsbCA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgc29ja2V0dmFyYXJnID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSBzb2NrZXR2YXJhcmc7CiAgICAgICAgICAgIHN3aXRjaCAoY2FsbCkgewogICAgICAgICAgICAgICAgY2FzZSAxOiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRvbWFpbiA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvY29sID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBTT0NLRlMuY3JlYXRlU29ja2V0KGRvbWFpbiwgdHlwZSwgcHJvdG9jb2wpOwogICAgICAgICAgICAgICAgICAgIGFzc2VydChzb2NrLnN0cmVhbS5mZCA8IDY0KTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gc29jay5zdHJlYW0uZmQKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgMjogewogICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBTWVNDQUxMUy5nZXRTb2NrZXRGcm9tRkQoKSwKICAgICAgICAgICAgICAgICAgICBpbmZvID0gU1lTQ0FMTFMuZ2V0U29ja2V0QWRkcmVzcygpOwogICAgICAgICAgICAgICAgc29jay5zb2NrX29wcy5iaW5kKHNvY2ssIGluZm8uYWRkciwgaW5mby5wb3J0KTsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgMzogewogICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBTWVNDQUxMUy5nZXRTb2NrZXRGcm9tRkQoKSwKICAgICAgICAgICAgICAgICAgICBpbmZvID0gU1lTQ0FMTFMuZ2V0U29ja2V0QWRkcmVzcygpOwogICAgICAgICAgICAgICAgc29jay5zb2NrX29wcy5jb25uZWN0KHNvY2ssIGluZm8uYWRkciwgaW5mby5wb3J0KTsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgNDogewogICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBTWVNDQUxMUy5nZXRTb2NrZXRGcm9tRkQoKSwKICAgICAgICAgICAgICAgICAgICBiYWNrbG9nID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgICAgICBzb2NrLnNvY2tfb3BzLmxpc3Rlbihzb2NrLCBiYWNrbG9nKTsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgNTogewogICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBTWVNDQUxMUy5nZXRTb2NrZXRGcm9tRkQoKSwKICAgICAgICAgICAgICAgICAgICBhZGRyID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgYWRkcmxlbiA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICAgICAgdmFyIG5ld3NvY2sgPSBzb2NrLnNvY2tfb3BzLmFjY2VwdChzb2NrKTsKICAgICAgICAgICAgICAgIGlmIChhZGRyKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcyA9IF9fd3JpdGVfc29ja2FkZHIoYWRkciwgbmV3c29jay5mYW1pbHksIEROUy5sb29rdXBfbmFtZShuZXdzb2NrLmRhZGRyKSwgbmV3c29jay5kcG9ydCk7CiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KCFyZXMuZXJybm8pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3c29jay5zdHJlYW0uZmQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSA2OiB7CiAgICAgICAgICAgICAgICB2YXIgc29jayA9IFNZU0NBTExTLmdldFNvY2tldEZyb21GRCgpLAogICAgICAgICAgICAgICAgICAgIGFkZHIgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICBhZGRybGVuID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgICAgICB2YXIgcmVzID0gX193cml0ZV9zb2NrYWRkcihhZGRyLCBzb2NrLmZhbWlseSwgRE5TLmxvb2t1cF9uYW1lKHNvY2suc2FkZHIgfHwgIjAuMC4wLjAiKSwgc29jay5zcG9ydCk7CiAgICAgICAgICAgICAgICBhc3NlcnQoIXJlcy5lcnJubyk7CiAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICB9OwogICAgICAgICAgICBjYXNlIDc6IHsKICAgICAgICAgICAgICAgIHZhciBzb2NrID0gU1lTQ0FMTFMuZ2V0U29ja2V0RnJvbUZEKCksCiAgICAgICAgICAgICAgICAgICAgYWRkciA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgICAgIGFkZHJsZW4gPSBTWVNDQUxMUy5nZXQoKTsKICAgICAgICAgICAgICAgIGlmICghc29jay5kYWRkcikgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAtRVJSTk9fQ09ERVMuRU5PVENPTk4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciByZXMgPSBfX3dyaXRlX3NvY2thZGRyKGFkZHIsIHNvY2suZmFtaWx5LCBETlMubG9va3VwX25hbWUoc29jay5kYWRkciksIHNvY2suZHBvcnQpOwogICAgICAgICAgICAgICAgYXNzZXJ0KCFyZXMuZXJybm8pOwogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAxMTogewogICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBTWVNDQUxMUy5nZXRTb2NrZXRGcm9tRkQoKSwKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgZmxhZ3MgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICBkZXN0ID0gU1lTQ0FMTFMuZ2V0U29ja2V0QWRkcmVzcyh0cnVlKTsKICAgICAgICAgICAgICAgIGlmICghZGVzdCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBGUy53cml0ZShzb2NrLnN0cmVhbSwgSEVBUDgsIG1lc3NhZ2UsIGxlbmd0aCkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNvY2suc29ja19vcHMuc2VuZG1zZyhzb2NrLCBIRUFQOCwgbWVzc2FnZSwgbGVuZ3RoLCBkZXN0LmFkZHIsIGRlc3QucG9ydCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAxMjogewogICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBTWVNDQUxMUy5nZXRTb2NrZXRGcm9tRkQoKSwKICAgICAgICAgICAgICAgICAgICBidWYgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICBsZW4gPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICBmbGFncyA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgICAgIGFkZHIgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICBhZGRybGVuID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgICAgICB2YXIgbXNnID0gc29jay5zb2NrX29wcy5yZWN2bXNnKHNvY2ssIGxlbik7CiAgICAgICAgICAgICAgICBpZiAoIW1zZykgcmV0dXJuIDA7CiAgICAgICAgICAgICAgICBpZiAoYWRkcikgewogICAgICAgICAgICAgICAgICAgIHZhciByZXMgPSBfX3dyaXRlX3NvY2thZGRyKGFkZHIsIHNvY2suZmFtaWx5LCBETlMubG9va3VwX25hbWUobXNnLmFkZHIpLCBtc2cucG9ydCk7CiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KCFyZXMuZXJybm8pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBIRUFQVTguc2V0KG1zZy5idWZmZXIsIGJ1Zik7CiAgICAgICAgICAgICAgICByZXR1cm4gbXNnLmJ1ZmZlci5ieXRlTGVuZ3RoCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgMTQ6IHsKICAgICAgICAgICAgICAgIHJldHVybiAtRVJSTk9fQ09ERVMuRU5PUFJPVE9PUFQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAxNTogewogICAgICAgICAgICAgICAgdmFyIHNvY2sgPSBTWVNDQUxMUy5nZXRTb2NrZXRGcm9tRkQoKSwKICAgICAgICAgICAgICAgICAgICBsZXZlbCA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgICAgIG9wdG5hbWUgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICBvcHR2YWwgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICBvcHRsZW4gPSBTWVNDQUxMUy5nZXQoKTsKICAgICAgICAgICAgICAgIGlmIChsZXZlbCA9PT0gMSkgewogICAgICAgICAgICAgICAgICAgIGlmIChvcHRuYW1lID09PSA0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEhFQVAzMltvcHR2YWwgPj4gMl0gPSBzb2NrLmVycm9yOwogICAgICAgICAgICAgICAgICAgICAgICBIRUFQMzJbb3B0bGVuID4+IDJdID0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgc29jay5lcnJvciA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIC1FUlJOT19DT0RFUy5FTk9QUk9UT09QVAogICAgICAgICAgICB9OwogICAgICAgICAgICBjYXNlIDE2OiB7CiAgICAgICAgICAgICAgICB2YXIgc29jayA9IFNZU0NBTExTLmdldFNvY2tldEZyb21GRCgpLAogICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICBmbGFncyA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICAgICAgdmFyIGlvdiA9IEhFQVAzMlttZXNzYWdlICsgOCA+PiAyXTsKICAgICAgICAgICAgICAgIHZhciBudW0gPSBIRUFQMzJbbWVzc2FnZSArIDEyID4+IDJdOwogICAgICAgICAgICAgICAgdmFyIGFkZHIsIHBvcnQ7CiAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IEhFQVAzMlttZXNzYWdlID4+IDJdOwogICAgICAgICAgICAgICAgdmFyIG5hbWVsZW4gPSBIRUFQMzJbbWVzc2FnZSArIDQgPj4gMl07CiAgICAgICAgICAgICAgICBpZiAobmFtZSkgewogICAgICAgICAgICAgICAgICAgIHZhciBpbmZvID0gX19yZWFkX3NvY2thZGRyKG5hbWUsIG5hbWVsZW4pOwogICAgICAgICAgICAgICAgICAgIGlmIChpbmZvLmVycm5vKSByZXR1cm4gLWluZm8uZXJybm87CiAgICAgICAgICAgICAgICAgICAgcG9ydCA9IGluZm8ucG9ydDsKICAgICAgICAgICAgICAgICAgICBhZGRyID0gRE5TLmxvb2t1cF9hZGRyKGluZm8uYWRkcikgfHwgaW5mby5hZGRyCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgdG90YWwgPSAwOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW07IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IEhFQVAzMltpb3YgKyAoOCAqIGkgKyA0KSA+PiAyXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheSh0b3RhbCk7CiAgICAgICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMDsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaW92YmFzZSA9IEhFQVAzMltpb3YgKyAoOCAqIGkgKyAwKSA+PiAyXTsKICAgICAgICAgICAgICAgICAgICB2YXIgaW92bGVuID0gSEVBUDMyW2lvdiArICg4ICogaSArIDQpID4+IDJdOwogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgaW92bGVuOyBqKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmlld1tvZmZzZXQrK10gPSBIRUFQOFtpb3ZiYXNlICsgaiA+PiAwXQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBzb2NrLnNvY2tfb3BzLnNlbmRtc2coc29jaywgdmlldywgMCwgdG90YWwsIGFkZHIsIHBvcnQpCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgMTc6IHsKICAgICAgICAgICAgICAgIHZhciBzb2NrID0gU1lTQ0FMTFMuZ2V0U29ja2V0RnJvbUZEKCksCiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgICAgIGZsYWdzID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgICAgICB2YXIgaW92ID0gSEVBUDMyW21lc3NhZ2UgKyA4ID4+IDJdOwogICAgICAgICAgICAgICAgdmFyIG51bSA9IEhFQVAzMlttZXNzYWdlICsgMTIgPj4gMl07CiAgICAgICAgICAgICAgICB2YXIgdG90YWwgPSAwOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW07IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IEhFQVAzMltpb3YgKyAoOCAqIGkgKyA0KSA+PiAyXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIG1zZyA9IHNvY2suc29ja19vcHMucmVjdm1zZyhzb2NrLCB0b3RhbCk7CiAgICAgICAgICAgICAgICBpZiAoIW1zZykgcmV0dXJuIDA7CiAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IEhFQVAzMlttZXNzYWdlID4+IDJdOwogICAgICAgICAgICAgICAgaWYgKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0gX193cml0ZV9zb2NrYWRkcihuYW1lLCBzb2NrLmZhbWlseSwgRE5TLmxvb2t1cF9uYW1lKG1zZy5hZGRyKSwgbXNnLnBvcnQpOwogICAgICAgICAgICAgICAgICAgIGFzc2VydCghcmVzLmVycm5vKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7CiAgICAgICAgICAgICAgICB2YXIgYnl0ZXNSZW1haW5pbmcgPSBtc2cuYnVmZmVyLmJ5dGVMZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgYnl0ZXNSZW1haW5pbmcgPiAwICYmIGkgPCBudW07IGkrKykgewogICAgICAgICAgICAgICAgICAgIHZhciBpb3ZiYXNlID0gSEVBUDMyW2lvdiArICg4ICogaSArIDApID4+IDJdOwogICAgICAgICAgICAgICAgICAgIHZhciBpb3ZsZW4gPSBIRUFQMzJbaW92ICsgKDggKiBpICsgNCkgPj4gMl07CiAgICAgICAgICAgICAgICAgICAgaWYgKCFpb3ZsZW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdmFyIGxlbmd0aCA9IE1hdGgubWluKGlvdmxlbiwgYnl0ZXNSZW1haW5pbmcpOwogICAgICAgICAgICAgICAgICAgIHZhciBidWYgPSBtc2cuYnVmZmVyLnN1YmFycmF5KGJ5dGVzUmVhZCwgYnl0ZXNSZWFkICsgbGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICBIRUFQVTguc2V0KGJ1ZiwgaW92YmFzZSArIGJ5dGVzUmVhZCk7CiAgICAgICAgICAgICAgICAgICAgYnl0ZXNSZWFkICs9IGxlbmd0aDsKICAgICAgICAgICAgICAgICAgICBieXRlc1JlbWFpbmluZyAtPSBsZW5ndGgKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBieXRlc1JlYWQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGFib3J0KCJ1bnN1cHBvcnRlZCBzb2NrZXRjYWxsIHN5c2NhbGwgIiArIGNhbGwpCiAgICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGwxMjIod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgYnVmID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIGlmICghYnVmKSByZXR1cm4gLUVSUk5PX0NPREVTLkVGQVVMVDsKICAgICAgICAgICAgdmFyIGxheW91dCA9IHsKICAgICAgICAgICAgICAgICJzeXNuYW1lIjogMCwKICAgICAgICAgICAgICAgICJub2RlbmFtZSI6IDY1LAogICAgICAgICAgICAgICAgImRvbWFpbm5hbWUiOiAzMjUsCiAgICAgICAgICAgICAgICAibWFjaGluZSI6IDI2MCwKICAgICAgICAgICAgICAgICJ2ZXJzaW9uIjogMTk1LAogICAgICAgICAgICAgICAgInJlbGVhc2UiOiAxMzAsCiAgICAgICAgICAgICAgICAiX19zaXplX18iOiAzOTAKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGZ1bmN0aW9uIGNvcHlTdHJpbmcoZWxlbWVudCwgdmFsdWUpIHsKICAgICAgICAgICAgICAgIHZhciBvZmZzZXQgPSBsYXlvdXRbZWxlbWVudF07CiAgICAgICAgICAgICAgICB3cml0ZUFzY2lpVG9NZW1vcnkodmFsdWUsIGJ1ZiArIG9mZnNldCkKICAgICAgICAgICAgfQogICAgICAgICAgICBjb3B5U3RyaW5nKCJzeXNuYW1lIiwgIkVtc2NyaXB0ZW4iKTsKICAgICAgICAgICAgY29weVN0cmluZygibm9kZW5hbWUiLCAiZW1zY3JpcHRlbiIpOwogICAgICAgICAgICBjb3B5U3RyaW5nKCJyZWxlYXNlIiwgIjEuMCIpOwogICAgICAgICAgICBjb3B5U3RyaW5nKCJ2ZXJzaW9uIiwgIiMxIik7CiAgICAgICAgICAgIGNvcHlTdHJpbmcoIm1hY2hpbmUiLCAieDg2LUpTIik7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsMTQwKHdoaWNoLCB2YXJhcmdzKSB7CiAgICAgICAgU1lTQ0FMTFMudmFyYXJncyA9IHZhcmFyZ3M7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIHN0cmVhbSA9IFNZU0NBTExTLmdldFN0cmVhbUZyb21GRCgpLAogICAgICAgICAgICAgICAgb2Zmc2V0X2hpZ2ggPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgIG9mZnNldF9sb3cgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgIHJlc3VsdCA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgd2hlbmNlID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIHZhciBvZmZzZXQgPSBvZmZzZXRfbG93OwogICAgICAgICAgICBGUy5sbHNlZWsoc3RyZWFtLCBvZmZzZXQsIHdoZW5jZSk7CiAgICAgICAgICAgIEhFQVAzMltyZXN1bHQgPj4gMl0gPSBzdHJlYW0ucG9zaXRpb247CiAgICAgICAgICAgIGlmIChzdHJlYW0uZ2V0ZGVudHMgJiYgb2Zmc2V0ID09PSAwICYmIHdoZW5jZSA9PT0gMCkgc3RyZWFtLmdldGRlbnRzID0gbnVsbDsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGwxNDIod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgbmZkcyA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgcmVhZGZkcyA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgd3JpdGVmZHMgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgIGV4Y2VwdGZkcyA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgdGltZW91dCA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICBhc3NlcnQobmZkcyA8PSA2NCwgIm5mZHMgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNjQiKTsKICAgICAgICAgICAgYXNzZXJ0KCFleGNlcHRmZHMsICJleGNlcHRmZHMgbm90IHN1cHBvcnRlZCIpOwogICAgICAgICAgICB2YXIgdG90YWwgPSAwOwogICAgICAgICAgICB2YXIgc3JjUmVhZExvdyA9IHJlYWRmZHMgPyBIRUFQMzJbcmVhZGZkcyA+PiAyXSA6IDAsCiAgICAgICAgICAgICAgICBzcmNSZWFkSGlnaCA9IHJlYWRmZHMgPyBIRUFQMzJbcmVhZGZkcyArIDQgPj4gMl0gOiAwOwogICAgICAgICAgICB2YXIgc3JjV3JpdGVMb3cgPSB3cml0ZWZkcyA/IEhFQVAzMlt3cml0ZWZkcyA+PiAyXSA6IDAsCiAgICAgICAgICAgICAgICBzcmNXcml0ZUhpZ2ggPSB3cml0ZWZkcyA/IEhFQVAzMlt3cml0ZWZkcyArIDQgPj4gMl0gOiAwOwogICAgICAgICAgICB2YXIgc3JjRXhjZXB0TG93ID0gZXhjZXB0ZmRzID8gSEVBUDMyW2V4Y2VwdGZkcyA+PiAyXSA6IDAsCiAgICAgICAgICAgICAgICBzcmNFeGNlcHRIaWdoID0gZXhjZXB0ZmRzID8gSEVBUDMyW2V4Y2VwdGZkcyArIDQgPj4gMl0gOiAwOwogICAgICAgICAgICB2YXIgZHN0UmVhZExvdyA9IDAsCiAgICAgICAgICAgICAgICBkc3RSZWFkSGlnaCA9IDA7CiAgICAgICAgICAgIHZhciBkc3RXcml0ZUxvdyA9IDAsCiAgICAgICAgICAgICAgICBkc3RXcml0ZUhpZ2ggPSAwOwogICAgICAgICAgICB2YXIgZHN0RXhjZXB0TG93ID0gMCwKICAgICAgICAgICAgICAgIGRzdEV4Y2VwdEhpZ2ggPSAwOwogICAgICAgICAgICB2YXIgYWxsTG93ID0gKHJlYWRmZHMgPyBIRUFQMzJbcmVhZGZkcyA+PiAyXSA6IDApIHwgKHdyaXRlZmRzID8gSEVBUDMyW3dyaXRlZmRzID4+IDJdIDogMCkgfCAoZXhjZXB0ZmRzID8gSEVBUDMyW2V4Y2VwdGZkcyA+PiAyXSA6IDApOwogICAgICAgICAgICB2YXIgYWxsSGlnaCA9IChyZWFkZmRzID8gSEVBUDMyW3JlYWRmZHMgKyA0ID4+IDJdIDogMCkgfCAod3JpdGVmZHMgPyBIRUFQMzJbd3JpdGVmZHMgKyA0ID4+IDJdIDogMCkgfCAoZXhjZXB0ZmRzID8gSEVBUDMyW2V4Y2VwdGZkcyArIDQgPj4gMl0gOiAwKTsKCiAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrKGZkLCBsb3csIGhpZ2gsIHZhbCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZkIDwgMzIgPyBsb3cgJiB2YWwgOiBoaWdoICYgdmFsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yICh2YXIgZmQgPSAwOyBmZCA8IG5mZHM7IGZkKyspIHsKICAgICAgICAgICAgICAgIHZhciBtYXNrID0gMSA8PCBmZCAlIDMyOwogICAgICAgICAgICAgICAgaWYgKCFjaGVjayhmZCwgYWxsTG93LCBhbGxIaWdoLCBtYXNrKSkgewogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZkKTsKICAgICAgICAgICAgICAgIGlmICghc3RyZWFtKSB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7CiAgICAgICAgICAgICAgICB2YXIgZmxhZ3MgPSBTWVNDQUxMUy5ERUZBVUxUX1BPTExNQVNLOwogICAgICAgICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLnBvbGwpIHsKICAgICAgICAgICAgICAgICAgICBmbGFncyA9IHN0cmVhbS5zdHJlYW1fb3BzLnBvbGwoc3RyZWFtKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGZsYWdzICYgMSAmJiBjaGVjayhmZCwgc3JjUmVhZExvdywgc3JjUmVhZEhpZ2gsIG1hc2spKSB7CiAgICAgICAgICAgICAgICAgICAgZmQgPCAzMiA/IGRzdFJlYWRMb3cgPSBkc3RSZWFkTG93IHwgbWFzayA6IGRzdFJlYWRIaWdoID0gZHN0UmVhZEhpZ2ggfCBtYXNrOwogICAgICAgICAgICAgICAgICAgIHRvdGFsKysKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChmbGFncyAmIDQgJiYgY2hlY2soZmQsIHNyY1dyaXRlTG93LCBzcmNXcml0ZUhpZ2gsIG1hc2spKSB7CiAgICAgICAgICAgICAgICAgICAgZmQgPCAzMiA/IGRzdFdyaXRlTG93ID0gZHN0V3JpdGVMb3cgfCBtYXNrIDogZHN0V3JpdGVIaWdoID0gZHN0V3JpdGVIaWdoIHwgbWFzazsKICAgICAgICAgICAgICAgICAgICB0b3RhbCsrCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoZmxhZ3MgJiAyICYmIGNoZWNrKGZkLCBzcmNFeGNlcHRMb3csIHNyY0V4Y2VwdEhpZ2gsIG1hc2spKSB7CiAgICAgICAgICAgICAgICAgICAgZmQgPCAzMiA/IGRzdEV4Y2VwdExvdyA9IGRzdEV4Y2VwdExvdyB8IG1hc2sgOiBkc3RFeGNlcHRIaWdoID0gZHN0RXhjZXB0SGlnaCB8IG1hc2s7CiAgICAgICAgICAgICAgICAgICAgdG90YWwrKwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZWFkZmRzKSB7CiAgICAgICAgICAgICAgICBIRUFQMzJbcmVhZGZkcyA+PiAyXSA9IGRzdFJlYWRMb3c7CiAgICAgICAgICAgICAgICBIRUFQMzJbcmVhZGZkcyArIDQgPj4gMl0gPSBkc3RSZWFkSGlnaAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh3cml0ZWZkcykgewogICAgICAgICAgICAgICAgSEVBUDMyW3dyaXRlZmRzID4+IDJdID0gZHN0V3JpdGVMb3c7CiAgICAgICAgICAgICAgICBIRUFQMzJbd3JpdGVmZHMgKyA0ID4+IDJdID0gZHN0V3JpdGVIaWdoCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGV4Y2VwdGZkcykgewogICAgICAgICAgICAgICAgSEVBUDMyW2V4Y2VwdGZkcyA+PiAyXSA9IGRzdEV4Y2VwdExvdzsKICAgICAgICAgICAgICAgIEhFQVAzMltleGNlcHRmZHMgKyA0ID4+IDJdID0gZHN0RXhjZXB0SGlnaAogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0b3RhbAogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDE0NSh3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBzdHJlYW0gPSBTWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoKSwKICAgICAgICAgICAgICAgIGlvdiA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgaW92Y250ID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIHJldHVybiBTWVNDQUxMUy5kb1JlYWR2KHN0cmVhbSwgaW92LCBpb3ZjbnQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsMTQ2KHdoaWNoLCB2YXJhcmdzKSB7CiAgICAgICAgU1lTQ0FMTFMudmFyYXJncyA9IHZhcmFyZ3M7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIHN0cmVhbSA9IFNZU0NBTExTLmdldFN0cmVhbUZyb21GRCgpLAogICAgICAgICAgICAgICAgaW92ID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICBpb3ZjbnQgPSBTWVNDQUxMUy5nZXQoKTsKICAgICAgICAgICAgcmV0dXJuIFNZU0NBTExTLmRvV3JpdGV2KHN0cmVhbSwgaW92LCBpb3ZjbnQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsMTUod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgcGF0aCA9IFNZU0NBTExTLmdldFN0cigpLAogICAgICAgICAgICAgICAgbW9kZSA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICBGUy5jaG1vZChwYXRoLCBtb2RlKTsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGwxODMod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgYnVmID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICBzaXplID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIGlmIChzaXplID09PSAwKSByZXR1cm4gLUVSUk5PX0NPREVTLkVJTlZBTDsKICAgICAgICAgICAgdmFyIGN3ZCA9IEZTLmN3ZCgpOwogICAgICAgICAgICB2YXIgY3dkTGVuZ3RoSW5CeXRlcyA9IGxlbmd0aEJ5dGVzVVRGOChjd2QpOwogICAgICAgICAgICBpZiAoc2l6ZSA8IGN3ZExlbmd0aEluQnl0ZXMgKyAxKSByZXR1cm4gLUVSUk5PX0NPREVTLkVSQU5HRTsKICAgICAgICAgICAgc3RyaW5nVG9VVEY4KGN3ZCwgYnVmLCBzaXplKTsKICAgICAgICAgICAgcmV0dXJuIGJ1ZgogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDE5Mih3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBhZGRyID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICBsZW4gPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgIHByb3QgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgIGZsYWdzID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICBmZCA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgb2ZmID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIG9mZiA8PD0gMTI7CiAgICAgICAgICAgIHZhciBwdHI7CiAgICAgICAgICAgIHZhciBhbGxvY2F0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgaWYgKGZkID09PSAtMSkgewogICAgICAgICAgICAgICAgcHRyID0gX21lbWFsaWduKFBBR0VfU0laRSwgbGVuKTsKICAgICAgICAgICAgICAgIGlmICghcHRyKSByZXR1cm4gLUVSUk5PX0NPREVTLkVOT01FTTsKICAgICAgICAgICAgICAgIF9tZW1zZXQocHRyLCAwLCBsZW4pOwogICAgICAgICAgICAgICAgYWxsb2NhdGVkID0gdHJ1ZQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGluZm8gPSBGUy5nZXRTdHJlYW0oZmQpOwogICAgICAgICAgICAgICAgaWYgKCFpbmZvKSByZXR1cm4gLUVSUk5PX0NPREVTLkVCQURGOwogICAgICAgICAgICAgICAgdmFyIHJlcyA9IEZTLm1tYXAoaW5mbywgSEVBUFU4LCBhZGRyLCBsZW4sIG9mZiwgcHJvdCwgZmxhZ3MpOwogICAgICAgICAgICAgICAgcHRyID0gcmVzLnB0cjsKICAgICAgICAgICAgICAgIGFsbG9jYXRlZCA9IHJlcy5hbGxvY2F0ZWQKICAgICAgICAgICAgfQogICAgICAgICAgICBTWVNDQUxMUy5tYXBwaW5nc1twdHJdID0gewogICAgICAgICAgICAgICAgbWFsbG9jOiBwdHIsCiAgICAgICAgICAgICAgICBsZW46IGxlbiwKICAgICAgICAgICAgICAgIGFsbG9jYXRlZDogYWxsb2NhdGVkLAogICAgICAgICAgICAgICAgZmQ6IGZkLAogICAgICAgICAgICAgICAgZmxhZ3M6IGZsYWdzCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHJldHVybiBwdHIKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGwxOTMod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgcGF0aCA9IFNZU0NBTExTLmdldFN0cigpLAogICAgICAgICAgICAgICAgemVybyA9IFNZU0NBTExTLmdldFplcm8oKSwKICAgICAgICAgICAgICAgIGxlbmd0aCA9IFNZU0NBTExTLmdldDY0KCk7CiAgICAgICAgICAgIEZTLnRydW5jYXRlKHBhdGgsIGxlbmd0aCk7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsMTk0KHdoaWNoLCB2YXJhcmdzKSB7CiAgICAgICAgU1lTQ0FMTFMudmFyYXJncyA9IHZhcmFyZ3M7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIGZkID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICB6ZXJvID0gU1lTQ0FMTFMuZ2V0WmVybygpLAogICAgICAgICAgICAgICAgbGVuZ3RoID0gU1lTQ0FMTFMuZ2V0NjQoKTsKICAgICAgICAgICAgRlMuZnRydW5jYXRlKGZkLCBsZW5ndGgpOwogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDE5NSh3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBwYXRoID0gU1lTQ0FMTFMuZ2V0U3RyKCksCiAgICAgICAgICAgICAgICBidWYgPSBTWVNDQUxMUy5nZXQoKTsKICAgICAgICAgICAgcmV0dXJuIFNZU0NBTExTLmRvU3RhdChGUy5zdGF0LCBwYXRoLCBidWYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsMTk2KHdoaWNoLCB2YXJhcmdzKSB7CiAgICAgICAgU1lTQ0FMTFMudmFyYXJncyA9IHZhcmFyZ3M7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIHBhdGggPSBTWVNDQUxMUy5nZXRTdHIoKSwKICAgICAgICAgICAgICAgIGJ1ZiA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICByZXR1cm4gU1lTQ0FMTFMuZG9TdGF0KEZTLmxzdGF0LCBwYXRoLCBidWYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsMTk3KHdoaWNoLCB2YXJhcmdzKSB7CiAgICAgICAgU1lTQ0FMTFMudmFyYXJncyA9IHZhcmFyZ3M7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIHN0cmVhbSA9IFNZU0NBTExTLmdldFN0cmVhbUZyb21GRCgpLAogICAgICAgICAgICAgICAgYnVmID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIHJldHVybiBTWVNDQUxMUy5kb1N0YXQoRlMuc3RhdCwgc3RyZWFtLnBhdGgsIGJ1ZikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGwyMDIod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDE5OSgpIHsKICAgICAgICByZXR1cm4gX19fc3lzY2FsbDIwMi5hcHBseShudWxsLCBhcmd1bWVudHMpCiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDIyMCh3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBzdHJlYW0gPSBTWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoKSwKICAgICAgICAgICAgICAgIGRpcnAgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgIGNvdW50ID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIGlmICghc3RyZWFtLmdldGRlbnRzKSB7CiAgICAgICAgICAgICAgICBzdHJlYW0uZ2V0ZGVudHMgPSBGUy5yZWFkZGlyKHN0cmVhbS5wYXRoKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBwb3MgPSAwOwogICAgICAgICAgICB3aGlsZSAoc3RyZWFtLmdldGRlbnRzLmxlbmd0aCA+IDAgJiYgcG9zICsgMjY4IDw9IGNvdW50KSB7CiAgICAgICAgICAgICAgICB2YXIgaWQ7CiAgICAgICAgICAgICAgICB2YXIgdHlwZTsKICAgICAgICAgICAgICAgIHZhciBuYW1lID0gc3RyZWFtLmdldGRlbnRzLnBvcCgpOwogICAgICAgICAgICAgICAgaWYgKG5hbWVbMF0gPT09ICIuIikgewogICAgICAgICAgICAgICAgICAgIGlkID0gMTsKICAgICAgICAgICAgICAgICAgICB0eXBlID0gNAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSBGUy5sb29rdXBOb2RlKHN0cmVhbS5ub2RlLCBuYW1lKTsKICAgICAgICAgICAgICAgICAgICBpZCA9IGNoaWxkLmlkOwogICAgICAgICAgICAgICAgICAgIHR5cGUgPSBGUy5pc0NocmRldihjaGlsZC5tb2RlKSA/IDIgOiBGUy5pc0RpcihjaGlsZC5tb2RlKSA/IDQgOiBGUy5pc0xpbmsoY2hpbGQubW9kZSkgPyAxMCA6IDgKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEhFQVAzMltkaXJwICsgcG9zID4+IDJdID0gaWQ7CiAgICAgICAgICAgICAgICBIRUFQMzJbZGlycCArIHBvcyArIDQgPj4gMl0gPSBzdHJlYW0ucG9zaXRpb247CiAgICAgICAgICAgICAgICBIRUFQMTZbZGlycCArIHBvcyArIDggPj4gMV0gPSAyNjg7CiAgICAgICAgICAgICAgICBIRUFQOFtkaXJwICsgcG9zICsgMTAgPj4gMF0gPSB0eXBlOwogICAgICAgICAgICAgICAgc3RyaW5nVG9VVEY4KG5hbWUsIGRpcnAgKyBwb3MgKyAxMSwgMjU2KTsKICAgICAgICAgICAgICAgIHBvcyArPSAyNjgKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcG9zCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsMjIxKHdoaWNoLCB2YXJhcmdzKSB7CiAgICAgICAgU1lTQ0FMTFMudmFyYXJncyA9IHZhcmFyZ3M7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIHN0cmVhbSA9IFNZU0NBTExTLmdldFN0cmVhbUZyb21GRCgpLAogICAgICAgICAgICAgICAgY21kID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIHN3aXRjaCAoY21kKSB7CiAgICAgICAgICAgICAgICBjYXNlIDA6IHsKICAgICAgICAgICAgICAgICAgICB2YXIgYXJnID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGFyZyA8IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FUlJOT19DT0RFUy5FSU5WQUwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdmFyIG5ld1N0cmVhbTsKICAgICAgICAgICAgICAgICAgICBuZXdTdHJlYW0gPSBGUy5vcGVuKHN0cmVhbS5wYXRoLCBzdHJlYW0uZmxhZ3MsIDAsIGFyZyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0cmVhbS5mZAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgcmV0dXJuIHN0cmVhbS5mbGFnczsKICAgICAgICAgICAgY2FzZSA0OiB7CiAgICAgICAgICAgICAgICB2YXIgYXJnID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgICAgICBzdHJlYW0uZmxhZ3MgfD0gYXJnOwogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgY2FzZSAxMjogewogICAgICAgICAgICAgICAgdmFyIGFyZyA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICAgICAgdmFyIG9mZnNldCA9IDA7CiAgICAgICAgICAgICAgICBIRUFQMTZbYXJnICsgb2Zmc2V0ID4+IDFdID0gMjsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgICAgcmV0dXJuIC1FUlJOT19DT0RFUy5FSU5WQUw7CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgICAgIHJldHVybiAtRVJSTk9fQ09ERVMuRUlOVkFMCiAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDI2OCh3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBwYXRoID0gU1lTQ0FMTFMuZ2V0U3RyKCksCiAgICAgICAgICAgICAgICBzaXplID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICBidWYgPSBTWVNDQUxMUy5nZXQoKTsKICAgICAgICAgICAgYXNzZXJ0KHNpemUgPT09IDY0KTsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDQgPj4gMl0gPSA0MDk2OwogICAgICAgICAgICBIRUFQMzJbYnVmICsgNDAgPj4gMl0gPSA0MDk2OwogICAgICAgICAgICBIRUFQMzJbYnVmICsgOCA+PiAyXSA9IDFlNjsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDEyID4+IDJdID0gNWU1OwogICAgICAgICAgICBIRUFQMzJbYnVmICsgMTYgPj4gMl0gPSA1ZTU7CiAgICAgICAgICAgIEhFQVAzMltidWYgKyAyMCA+PiAyXSA9IEZTLm5leHRJbm9kZTsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDI0ID4+IDJdID0gMWU2OwogICAgICAgICAgICBIRUFQMzJbYnVmICsgMjggPj4gMl0gPSA0MjsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDQ0ID4+IDJdID0gMjsKICAgICAgICAgICAgSEVBUDMyW2J1ZiArIDM2ID4+IDJdID0gMjU1OwogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDMod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgc3RyZWFtID0gU1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKCksCiAgICAgICAgICAgICAgICBidWYgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgIGNvdW50ID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgSEVBUDgsIGJ1ZiwgY291bnQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsMzMod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgcGF0aCA9IFNZU0NBTExTLmdldFN0cigpLAogICAgICAgICAgICAgICAgYW1vZGUgPSBTWVNDQUxMUy5nZXQoKTsKICAgICAgICAgICAgcmV0dXJuIFNZU0NBTExTLmRvQWNjZXNzKHBhdGgsIGFtb2RlKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDM4KHdoaWNoLCB2YXJhcmdzKSB7CiAgICAgICAgU1lTQ0FMTFMudmFyYXJncyA9IHZhcmFyZ3M7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIG9sZF9wYXRoID0gU1lTQ0FMTFMuZ2V0U3RyKCksCiAgICAgICAgICAgICAgICBuZXdfcGF0aCA9IFNZU0NBTExTLmdldFN0cigpOwogICAgICAgICAgICBGUy5yZW5hbWUob2xkX3BhdGgsIG5ld19wYXRoKTsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGwzOSh3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBwYXRoID0gU1lTQ0FMTFMuZ2V0U3RyKCksCiAgICAgICAgICAgICAgICBtb2RlID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIHJldHVybiBTWVNDQUxMUy5kb01rZGlyKHBhdGgsIG1vZGUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsNCh3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBzdHJlYW0gPSBTWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoKSwKICAgICAgICAgICAgICAgIGJ1ZiA9IFNZU0NBTExTLmdldCgpLAogICAgICAgICAgICAgICAgY291bnQgPSBTWVNDQUxMUy5nZXQoKTsKICAgICAgICAgICAgcmV0dXJuIEZTLndyaXRlKHN0cmVhbSwgSEVBUDgsIGJ1ZiwgY291bnQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsNDAod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgcGF0aCA9IFNZU0NBTExTLmdldFN0cigpOwogICAgICAgICAgICBGUy5ybWRpcihwYXRoKTsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGw0MSh3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBvbGQgPSBTWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoKTsKICAgICAgICAgICAgcmV0dXJuIEZTLm9wZW4ob2xkLnBhdGgsIG9sZC5mbGFncywgMCkuZmQKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQogICAgdmFyIFBJUEVGUyA9IHsKICAgICAgICBCVUNLRVRfQlVGRkVSX1NJWkU6IDgxOTIsCiAgICAgICAgbW91bnQ6IChmdW5jdGlvbihtb3VudCkgewogICAgICAgICAgICByZXR1cm4gRlMuY3JlYXRlTm9kZShudWxsLCAiLyIsIDE2Mzg0IHwgNTExLCAwKQogICAgICAgIH0pLAogICAgICAgIGNyZWF0ZVBpcGU6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIHBpcGUgPSB7CiAgICAgICAgICAgICAgICBidWNrZXRzOiBbXQogICAgICAgICAgICB9OwogICAgICAgICAgICBwaXBlLmJ1Y2tldHMucHVzaCh7CiAgICAgICAgICAgICAgICBidWZmZXI6IG5ldyBVaW50OEFycmF5KFBJUEVGUy5CVUNLRVRfQlVGRkVSX1NJWkUpLAogICAgICAgICAgICAgICAgb2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgcm9mZnNldDogMAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIHJOYW1lID0gUElQRUZTLm5leHRuYW1lKCk7CiAgICAgICAgICAgIHZhciB3TmFtZSA9IFBJUEVGUy5uZXh0bmFtZSgpOwogICAgICAgICAgICB2YXIgck5vZGUgPSBGUy5jcmVhdGVOb2RlKFBJUEVGUy5yb290LCByTmFtZSwgNDA5NiwgMCk7CiAgICAgICAgICAgIHZhciB3Tm9kZSA9IEZTLmNyZWF0ZU5vZGUoUElQRUZTLnJvb3QsIHdOYW1lLCA0MDk2LCAwKTsKICAgICAgICAgICAgck5vZGUucGlwZSA9IHBpcGU7CiAgICAgICAgICAgIHdOb2RlLnBpcGUgPSBwaXBlOwogICAgICAgICAgICB2YXIgcmVhZGFibGVTdHJlYW0gPSBGUy5jcmVhdGVTdHJlYW0oewogICAgICAgICAgICAgICAgcGF0aDogck5hbWUsCiAgICAgICAgICAgICAgICBub2RlOiByTm9kZSwKICAgICAgICAgICAgICAgIGZsYWdzOiBGUy5tb2RlU3RyaW5nVG9GbGFncygiciIpLAogICAgICAgICAgICAgICAgc2Vla2FibGU6IGZhbHNlLAogICAgICAgICAgICAgICAgc3RyZWFtX29wczogUElQRUZTLnN0cmVhbV9vcHMKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHJOb2RlLnN0cmVhbSA9IHJlYWRhYmxlU3RyZWFtOwogICAgICAgICAgICB2YXIgd3JpdGFibGVTdHJlYW0gPSBGUy5jcmVhdGVTdHJlYW0oewogICAgICAgICAgICAgICAgcGF0aDogd05hbWUsCiAgICAgICAgICAgICAgICBub2RlOiB3Tm9kZSwKICAgICAgICAgICAgICAgIGZsYWdzOiBGUy5tb2RlU3RyaW5nVG9GbGFncygidyIpLAogICAgICAgICAgICAgICAgc2Vla2FibGU6IGZhbHNlLAogICAgICAgICAgICAgICAgc3RyZWFtX29wczogUElQRUZTLnN0cmVhbV9vcHMKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHdOb2RlLnN0cmVhbSA9IHdyaXRhYmxlU3RyZWFtOwogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgcmVhZGFibGVfZmQ6IHJlYWRhYmxlU3RyZWFtLmZkLAogICAgICAgICAgICAgICAgd3JpdGFibGVfZmQ6IHdyaXRhYmxlU3RyZWFtLmZkCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBzdHJlYW1fb3BzOiB7CiAgICAgICAgICAgIHBvbGw6IChmdW5jdGlvbihzdHJlYW0pIHsKICAgICAgICAgICAgICAgIHZhciBwaXBlID0gc3RyZWFtLm5vZGUucGlwZTsKICAgICAgICAgICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMjA5NzE1NSkgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjU2IHwgNAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAocGlwZS5idWNrZXRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwaXBlLmJ1Y2tldHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBidWNrZXQgPSBwaXBlLmJ1Y2tldHNbaV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVja2V0Lm9mZnNldCAtIGJ1Y2tldC5yb2Zmc2V0ID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA2NCB8IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBpb2N0bDogKGZ1bmN0aW9uKHN0cmVhbSwgcmVxdWVzdCwgdmFyYXJncykgewogICAgICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJTlZBTAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcmVhZDogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKICAgICAgICAgICAgICAgIHZhciBwaXBlID0gc3RyZWFtLm5vZGUucGlwZTsKICAgICAgICAgICAgICAgIHZhciBjdXJyZW50TGVuZ3RoID0gMDsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGlwZS5idWNrZXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGJ1Y2tldCA9IHBpcGUuYnVja2V0c1tpXTsKICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGVuZ3RoICs9IGJ1Y2tldC5vZmZzZXQgLSBidWNrZXQucm9mZnNldAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYXNzZXJ0KGJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyIHx8IEFycmF5QnVmZmVyLmlzVmlldyhidWZmZXIpKTsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gYnVmZmVyLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgbGVuZ3RoKTsKICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPD0gMCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoY3VycmVudExlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFHQUlOKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHRvUmVhZCA9IE1hdGgubWluKGN1cnJlbnRMZW5ndGgsIGxlbmd0aCk7CiAgICAgICAgICAgICAgICB2YXIgdG90YWxSZWFkID0gdG9SZWFkOwogICAgICAgICAgICAgICAgdmFyIHRvUmVtb3ZlID0gMDsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGlwZS5idWNrZXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJCdWNrZXQgPSBwaXBlLmJ1Y2tldHNbaV07CiAgICAgICAgICAgICAgICAgICAgdmFyIGJ1Y2tldFNpemUgPSBjdXJyQnVja2V0Lm9mZnNldCAtIGN1cnJCdWNrZXQucm9mZnNldDsKICAgICAgICAgICAgICAgICAgICBpZiAodG9SZWFkIDw9IGJ1Y2tldFNpemUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRtcFNsaWNlID0gY3VyckJ1Y2tldC5idWZmZXIuc3ViYXJyYXkoY3VyckJ1Y2tldC5yb2Zmc2V0LCBjdXJyQnVja2V0Lm9mZnNldCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0b1JlYWQgPCBidWNrZXRTaXplKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBTbGljZSA9IHRtcFNsaWNlLnN1YmFycmF5KDAsIHRvUmVhZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyQnVja2V0LnJvZmZzZXQgKz0gdG9SZWFkCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1JlbW92ZSsrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5zZXQodG1wU2xpY2UpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0bXBTbGljZSA9IGN1cnJCdWNrZXQuYnVmZmVyLnN1YmFycmF5KGN1cnJCdWNrZXQucm9mZnNldCwgY3VyckJ1Y2tldC5vZmZzZXQpOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNldCh0bXBTbGljZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnN1YmFycmF5KHRtcFNsaWNlLmJ5dGVMZW5ndGgpOwogICAgICAgICAgICAgICAgICAgICAgICB0b1JlYWQgLT0gdG1wU2xpY2UuYnl0ZUxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgdG9SZW1vdmUrKwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICh0b1JlbW92ZSAmJiB0b1JlbW92ZSA9PSBwaXBlLmJ1Y2tldHMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgdG9SZW1vdmUtLTsKICAgICAgICAgICAgICAgICAgICBwaXBlLmJ1Y2tldHNbdG9SZW1vdmVdLm9mZnNldCA9IDA7CiAgICAgICAgICAgICAgICAgICAgcGlwZS5idWNrZXRzW3RvUmVtb3ZlXS5yb2Zmc2V0ID0gMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcGlwZS5idWNrZXRzLnNwbGljZSgwLCB0b1JlbW92ZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxSZWFkCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICB3cml0ZTogKGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pIHsKICAgICAgICAgICAgICAgIHZhciBwaXBlID0gc3RyZWFtLm5vZGUucGlwZTsKICAgICAgICAgICAgICAgIGFzc2VydChidWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciB8fCBBcnJheUJ1ZmZlci5pc1ZpZXcoYnVmZmVyKSk7CiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGJ1ZmZlci5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICAgICAgICB2YXIgZGF0YUxlbiA9IGRhdGEuYnl0ZUxlbmd0aDsKICAgICAgICAgICAgICAgIGlmIChkYXRhTGVuIDw9IDApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGN1cnJCdWNrZXQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYgKHBpcGUuYnVja2V0cy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICAgICAgICAgIGN1cnJCdWNrZXQgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcjogbmV3IFVpbnQ4QXJyYXkoUElQRUZTLkJVQ0tFVF9CVUZGRVJfU0laRSksCiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgICAgICAgICAgICAgICAgcm9mZnNldDogMAogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgcGlwZS5idWNrZXRzLnB1c2goY3VyckJ1Y2tldCkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY3VyckJ1Y2tldCA9IHBpcGUuYnVja2V0c1twaXBlLmJ1Y2tldHMubGVuZ3RoIC0gMV0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGFzc2VydChjdXJyQnVja2V0Lm9mZnNldCA8PSBQSVBFRlMuQlVDS0VUX0JVRkZFUl9TSVpFKTsKICAgICAgICAgICAgICAgIHZhciBmcmVlQnl0ZXNJbkN1cnJCdWZmZXIgPSBQSVBFRlMuQlVDS0VUX0JVRkZFUl9TSVpFIC0gY3VyckJ1Y2tldC5vZmZzZXQ7CiAgICAgICAgICAgICAgICBpZiAoZnJlZUJ5dGVzSW5DdXJyQnVmZmVyID49IGRhdGFMZW4pIHsKICAgICAgICAgICAgICAgICAgICBjdXJyQnVja2V0LmJ1ZmZlci5zZXQoZGF0YSwgY3VyckJ1Y2tldC5vZmZzZXQpOwogICAgICAgICAgICAgICAgICAgIGN1cnJCdWNrZXQub2Zmc2V0ICs9IGRhdGFMZW47CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFMZW4KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZnJlZUJ5dGVzSW5DdXJyQnVmZmVyID4gMCkgewogICAgICAgICAgICAgICAgICAgIGN1cnJCdWNrZXQuYnVmZmVyLnNldChkYXRhLnN1YmFycmF5KDAsIGZyZWVCeXRlc0luQ3VyckJ1ZmZlciksIGN1cnJCdWNrZXQub2Zmc2V0KTsKICAgICAgICAgICAgICAgICAgICBjdXJyQnVja2V0Lm9mZnNldCArPSBmcmVlQnl0ZXNJbkN1cnJCdWZmZXI7CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEuc3ViYXJyYXkoZnJlZUJ5dGVzSW5DdXJyQnVmZmVyLCBkYXRhLmJ5dGVMZW5ndGgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgbnVtQnVja2V0cyA9IGRhdGEuYnl0ZUxlbmd0aCAvIFBJUEVGUy5CVUNLRVRfQlVGRkVSX1NJWkUgfCAwOwogICAgICAgICAgICAgICAgdmFyIHJlbUVsZW1lbnRzID0gZGF0YS5ieXRlTGVuZ3RoICUgUElQRUZTLkJVQ0tFVF9CVUZGRVJfU0laRTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtQnVja2V0czsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0J1Y2tldCA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyOiBuZXcgVWludDhBcnJheShQSVBFRlMuQlVDS0VUX0JVRkZFUl9TSVpFKSwKICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBQSVBFRlMuQlVDS0VUX0JVRkZFUl9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICByb2Zmc2V0OiAwCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICBwaXBlLmJ1Y2tldHMucHVzaChuZXdCdWNrZXQpOwogICAgICAgICAgICAgICAgICAgIG5ld0J1Y2tldC5idWZmZXIuc2V0KGRhdGEuc3ViYXJyYXkoMCwgUElQRUZTLkJVQ0tFVF9CVUZGRVJfU0laRSkpOwogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnN1YmFycmF5KFBJUEVGUy5CVUNLRVRfQlVGRkVSX1NJWkUsIGRhdGEuYnl0ZUxlbmd0aCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChyZW1FbGVtZW50cyA+IDApIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbmV3QnVja2V0ID0gewogICAgICAgICAgICAgICAgICAgICAgICBidWZmZXI6IG5ldyBVaW50OEFycmF5KFBJUEVGUy5CVUNLRVRfQlVGRkVSX1NJWkUpLAogICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IGRhdGEuYnl0ZUxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgcm9mZnNldDogMAogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgcGlwZS5idWNrZXRzLnB1c2gobmV3QnVja2V0KTsKICAgICAgICAgICAgICAgICAgICBuZXdCdWNrZXQuYnVmZmVyLnNldChkYXRhKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFMZW4KICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGNsb3NlOiAoZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgICAgICAgICAgICB2YXIgcGlwZSA9IHN0cmVhbS5ub2RlLnBpcGU7CiAgICAgICAgICAgICAgICBwaXBlLmJ1Y2tldHMgPSBudWxsCiAgICAgICAgICAgIH0pCiAgICAgICAgfSwKICAgICAgICBuZXh0bmFtZTogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoIVBJUEVGUy5uZXh0bmFtZS5jdXJyZW50KSB7CiAgICAgICAgICAgICAgICBQSVBFRlMubmV4dG5hbWUuY3VycmVudCA9IDAKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gInBpcGVbIiArIFBJUEVGUy5uZXh0bmFtZS5jdXJyZW50KysgKyAiXSIKICAgICAgICB9KQogICAgfTsKCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsNDIod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgZmRQdHIgPSBTWVNDQUxMUy5nZXQoKTsKICAgICAgICAgICAgaWYgKGZkUHRyID09IDApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVGQVVMVCkKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgcmVzID0gUElQRUZTLmNyZWF0ZVBpcGUoKTsKICAgICAgICAgICAgSEVBUDMyW2ZkUHRyID4+IDJdID0gcmVzLnJlYWRhYmxlX2ZkOwogICAgICAgICAgICBIRUFQMzJbZmRQdHIgKyA0ID4+IDJdID0gcmVzLndyaXRhYmxlX2ZkOwogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDUod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgcGF0aG5hbWUgPSBTWVNDQUxMUy5nZXRTdHIoKSwKICAgICAgICAgICAgICAgIGZsYWdzID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICBtb2RlID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIHZhciBzdHJlYW0gPSBGUy5vcGVuKHBhdGhuYW1lLCBmbGFncywgbW9kZSk7CiAgICAgICAgICAgIHJldHVybiBzdHJlYW0uZmQKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGw1NCh3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBzdHJlYW0gPSBTWVNDQUxMUy5nZXRTdHJlYW1Gcm9tRkQoKSwKICAgICAgICAgICAgICAgIG9wID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgICAgICAgIGNhc2UgMjE1MDk6CiAgICAgICAgICAgICAgICBjYXNlIDIxNTA1OiB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJlYW0udHR5KSByZXR1cm4gLUVSUk5PX0NPREVTLkVOT1RUWTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAyMTUxMDoKICAgICAgICAgICAgY2FzZSAyMTUxMToKICAgICAgICAgICAgY2FzZSAyMTUxMjoKICAgICAgICAgICAgY2FzZSAyMTUwNjoKICAgICAgICAgICAgY2FzZSAyMTUwNzoKICAgICAgICAgICAgY2FzZSAyMTUwODogewogICAgICAgICAgICAgICAgaWYgKCFzdHJlYW0udHR5KSByZXR1cm4gLUVSUk5PX0NPREVTLkVOT1RUWTsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgMjE1MTk6IHsKICAgICAgICAgICAgICAgIGlmICghc3RyZWFtLnR0eSkgcmV0dXJuIC1FUlJOT19DT0RFUy5FTk9UVFk7CiAgICAgICAgICAgICAgICB2YXIgYXJncCA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICAgICAgSEVBUDMyW2FyZ3AgPj4gMl0gPSAwOwogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAyMTUyMDogewogICAgICAgICAgICAgICAgaWYgKCFzdHJlYW0udHR5KSByZXR1cm4gLUVSUk5PX0NPREVTLkVOT1RUWTsKICAgICAgICAgICAgICAgIHJldHVybiAtRVJSTk9fQ09ERVMuRUlOVkFMCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgMjE1MzE6IHsKICAgICAgICAgICAgICAgIHZhciBhcmdwID0gU1lTQ0FMTFMuZ2V0KCk7CiAgICAgICAgICAgICAgICByZXR1cm4gRlMuaW9jdGwoc3RyZWFtLCBvcCwgYXJncCkKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY2FzZSAyMTUyMzogewogICAgICAgICAgICAgICAgaWYgKCFzdHJlYW0udHR5KSByZXR1cm4gLUVSUk5PX0NPREVTLkVOT1RUWTsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgMjE1MjQ6IHsKICAgICAgICAgICAgICAgIGlmICghc3RyZWFtLnR0eSkgcmV0dXJuIC1FUlJOT19DT0RFUy5FTk9UVFk7CiAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICB9OwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYWJvcnQoImJhZCBpb2N0bCBzeXNjYWxsICIgKyBvcCkKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDYod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgc3RyZWFtID0gU1lTQ0FMTFMuZ2V0U3RyZWFtRnJvbUZEKCk7CiAgICAgICAgICAgIEZTLmNsb3NlKHN0cmVhbSk7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIEZTID09PSAidW5kZWZpbmVkIiB8fCAhKGUgaW5zdGFuY2VvZiBGUy5FcnJub0Vycm9yKSkgYWJvcnQoZSk7CiAgICAgICAgICAgIHJldHVybiAtZS5lcnJubwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfX19zeXNjYWxsNzcod2hpY2gsIHZhcmFyZ3MpIHsKICAgICAgICBTWVNDQUxMUy52YXJhcmdzID0gdmFyYXJnczsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgd2hvID0gU1lTQ0FMTFMuZ2V0KCksCiAgICAgICAgICAgICAgICB1c2FnZSA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICBfbWVtc2V0KHVzYWdlLCAwLCAxMzYpOwogICAgICAgICAgICBIRUFQMzJbdXNhZ2UgPj4gMl0gPSAxOwogICAgICAgICAgICBIRUFQMzJbdXNhZ2UgKyA0ID4+IDJdID0gMjsKICAgICAgICAgICAgSEVBUDMyW3VzYWdlICsgOCA+PiAyXSA9IDM7CiAgICAgICAgICAgIEhFQVAzMlt1c2FnZSArIDEyID4+IDJdID0gNDsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRlMgPT09ICJ1bmRlZmluZWQiIHx8ICEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSBhYm9ydChlKTsKICAgICAgICAgICAgcmV0dXJuIC1lLmVycm5vCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9fX3N5c2NhbGw4NSh3aGljaCwgdmFyYXJncykgewogICAgICAgIFNZU0NBTExTLnZhcmFyZ3MgPSB2YXJhcmdzOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciBwYXRoID0gU1lTQ0FMTFMuZ2V0U3RyKCksCiAgICAgICAgICAgICAgICBidWYgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgIGJ1ZnNpemUgPSBTWVNDQUxMUy5nZXQoKTsKICAgICAgICAgICAgcmV0dXJuIFNZU0NBTExTLmRvUmVhZGxpbmsocGF0aCwgYnVmLCBidWZzaXplKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fc3lzY2FsbDkxKHdoaWNoLCB2YXJhcmdzKSB7CiAgICAgICAgU1lTQ0FMTFMudmFyYXJncyA9IHZhcmFyZ3M7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIGFkZHIgPSBTWVNDQUxMUy5nZXQoKSwKICAgICAgICAgICAgICAgIGxlbiA9IFNZU0NBTExTLmdldCgpOwogICAgICAgICAgICB2YXIgaW5mbyA9IFNZU0NBTExTLm1hcHBpbmdzW2FkZHJdOwogICAgICAgICAgICBpZiAoIWluZm8pIHJldHVybiAwOwogICAgICAgICAgICBpZiAobGVuID09PSBpbmZvLmxlbikgewogICAgICAgICAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShpbmZvLmZkKTsKICAgICAgICAgICAgICAgIFNZU0NBTExTLmRvTXN5bmMoYWRkciwgc3RyZWFtLCBsZW4sIGluZm8uZmxhZ3MpOwogICAgICAgICAgICAgICAgRlMubXVubWFwKHN0cmVhbSk7CiAgICAgICAgICAgICAgICBTWVNDQUxMUy5tYXBwaW5nc1thZGRyXSA9IG51bGw7CiAgICAgICAgICAgICAgICBpZiAoaW5mby5hbGxvY2F0ZWQpIHsKICAgICAgICAgICAgICAgICAgICBfZnJlZShpbmZvLm1hbGxvYykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBGUyA9PT0gInVuZGVmaW5lZCIgfHwgIShlIGluc3RhbmNlb2YgRlMuRXJybm9FcnJvcikpIGFib3J0KGUpOwogICAgICAgICAgICByZXR1cm4gLWUuZXJybm8KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX19fdW5sb2NrKCkge30KCiAgICBmdW5jdGlvbiBfYWJvcnQoKSB7CiAgICAgICAgTW9kdWxlWyJhYm9ydCJdKCkKICAgIH0KCiAgICBmdW5jdGlvbiBfYXRleGl0KGZ1bmMsIGFyZykgewogICAgICAgIF9fQVRFWElUX18udW5zaGlmdCh7CiAgICAgICAgICAgIGZ1bmM6IGZ1bmMsCiAgICAgICAgICAgIGFyZzogYXJnCiAgICAgICAgfSkKICAgIH0KCiAgICBmdW5jdGlvbiBfY2xvY2soKSB7CiAgICAgICAgaWYgKF9jbG9jay5zdGFydCA9PT0gdW5kZWZpbmVkKSBfY2xvY2suc3RhcnQgPSBEYXRlLm5vdygpOwogICAgICAgIHJldHVybiAoRGF0ZS5ub3coKSAtIF9jbG9jay5zdGFydCkgKiAoMWU2IC8gMWUzKSB8IDAKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9nZXRfbm93X3JlcygpIHsKICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewogICAgICAgICAgICByZXR1cm4gMQogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGVOb3cgIT09ICJ1bmRlZmluZWQiIHx8IChFTlZJUk9OTUVOVF9JU19XRUIgfHwgRU5WSVJPTk1FTlRfSVNfV09SS0VSKSAmJiBzZWxmWyJwZXJmb3JtYW5jZSJdICYmIHNlbGZbInBlcmZvcm1hbmNlIl1bIm5vdyJdKSB7CiAgICAgICAgICAgIHJldHVybiAxZTMKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gMWUzICogMWUzCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX2dldF9ub3dfaXNfbW9ub3RvbmljKCkgewogICAgICAgIHJldHVybiBFTlZJUk9OTUVOVF9JU19OT0RFIHx8IHR5cGVvZiBkYXRlTm93ICE9PSAidW5kZWZpbmVkIiB8fCAoRU5WSVJPTk1FTlRfSVNfV0VCIHx8IEVOVklST05NRU5UX0lTX1dPUktFUikgJiYgc2VsZlsicGVyZm9ybWFuY2UiXSAmJiBzZWxmWyJwZXJmb3JtYW5jZSJdWyJub3ciXQogICAgfQoKICAgIGZ1bmN0aW9uIF9jbG9ja19nZXRyZXMoY2xrX2lkLCByZXMpIHsKICAgICAgICB2YXIgbnNlYzsKICAgICAgICBpZiAoY2xrX2lkID09PSAwKSB7CiAgICAgICAgICAgIG5zZWMgPSAxZTMgKiAxZTMKICAgICAgICB9IGVsc2UgaWYgKGNsa19pZCA9PT0gMSAmJiBfZW1zY3JpcHRlbl9nZXRfbm93X2lzX21vbm90b25pYygpKSB7CiAgICAgICAgICAgIG5zZWMgPSBfZW1zY3JpcHRlbl9nZXRfbm93X3JlcygpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUlOVkFMKTsKICAgICAgICAgICAgcmV0dXJuIC0xCiAgICAgICAgfQogICAgICAgIEhFQVAzMltyZXMgPj4gMl0gPSBuc2VjIC8gMWU5IHwgMDsKICAgICAgICBIRUFQMzJbcmVzICsgNCA+PiAyXSA9IG5zZWM7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfY2xvY2tfZ2V0dGltZShjbGtfaWQsIHRwKSB7CiAgICAgICAgdmFyIG5vdzsKICAgICAgICBpZiAoY2xrX2lkID09PSAwKSB7CiAgICAgICAgICAgIG5vdyA9IERhdGUubm93KCkKICAgICAgICB9IGVsc2UgaWYgKGNsa19pZCA9PT0gMSAmJiBfZW1zY3JpcHRlbl9nZXRfbm93X2lzX21vbm90b25pYygpKSB7CiAgICAgICAgICAgIG5vdyA9IF9lbXNjcmlwdGVuX2dldF9ub3coKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7CiAgICAgICAgICAgIHJldHVybiAtMQogICAgICAgIH0KICAgICAgICBIRUFQMzJbdHAgPj4gMl0gPSBub3cgLyAxZTMgfCAwOwogICAgICAgIEhFQVAzMlt0cCArIDQgPj4gMl0gPSBub3cgJSAxZTMgKiAxZTMgKiAxZTMgfCAwOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2RpZmZ0aW1lKHRpbWUxLCB0aW1lMCkgewogICAgICAgIHJldHVybiB0aW1lMSAtIHRpbWUwCiAgICB9CiAgICB2YXIgRExGQ04gPSB7CiAgICAgICAgZXJyb3I6IG51bGwsCiAgICAgICAgZXJyb3JNc2c6IG51bGwsCiAgICAgICAgbG9hZGVkTGliczoge30sCiAgICAgICAgbG9hZGVkTGliTmFtZXM6IHt9CiAgICB9OwoKICAgIGZ1bmN0aW9uIF9kbGNsb3NlKGhhbmRsZSkgewogICAgICAgIGlmICghRExGQ04ubG9hZGVkTGlic1toYW5kbGVdKSB7CiAgICAgICAgICAgIERMRkNOLmVycm9yTXNnID0gIlRyaWVkIHRvIGRsY2xvc2UoKSB1bm9wZW5lZCBoYW5kbGU6ICIgKyBoYW5kbGU7CiAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIGxpYl9yZWNvcmQgPSBETEZDTi5sb2FkZWRMaWJzW2hhbmRsZV07CiAgICAgICAgICAgIGlmICgtLWxpYl9yZWNvcmQucmVmY291bnQgPT0gMCkgewogICAgICAgICAgICAgICAgaWYgKGxpYl9yZWNvcmQubW9kdWxlLmNsZWFudXBzKSB7CiAgICAgICAgICAgICAgICAgICAgbGliX3JlY29yZC5tb2R1bGUuY2xlYW51cHMuZm9yRWFjaCgoZnVuY3Rpb24oY2xlYW51cCkgewogICAgICAgICAgICAgICAgICAgICAgICBjbGVhbnVwKCkKICAgICAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlbGV0ZSBETEZDTi5sb2FkZWRMaWJOYW1lc1tsaWJfcmVjb3JkLm5hbWVdOwogICAgICAgICAgICAgICAgZGVsZXRlIERMRkNOLmxvYWRlZExpYnNbaGFuZGxlXQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9kbG9wZW4oZmlsZW5hbWUsIGZsYWcpIHsKICAgICAgICBhYm9ydCgiVG8gdXNlIGRsb3BlbiwgeW91IG5lZWQgdG8gdXNlIEVtc2NyaXB0ZW4ncyBsaW5raW5nIHN1cHBvcnQsIHNlZSBodHRwczovL2dpdGh1Yi5jb20va3JpcGtlbi9lbXNjcmlwdGVuL3dpa2kvTGlua2luZyIpOwogICAgICAgIHZhciBzZWFyY2hwYXRocyA9IFtdOwogICAgICAgIGlmIChmaWxlbmFtZSA9PT0gMCkgewogICAgICAgICAgICBmaWxlbmFtZSA9ICJfX3NlbGZfXyIKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgc3RyZmlsZW5hbWUgPSBQb2ludGVyX3N0cmluZ2lmeShmaWxlbmFtZSk7CiAgICAgICAgICAgIHZhciBpc1ZhbGlkRmlsZSA9IChmdW5jdGlvbihmaWxlbmFtZSkgewogICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IEZTLmZpbmRPYmplY3QoZmlsZW5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldCAmJiAhdGFyZ2V0LmlzRm9sZGVyICYmICF0YXJnZXQuaXNEZXZpY2UKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlmIChpc1ZhbGlkRmlsZShzdHJmaWxlbmFtZSkpIHsKICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gc3RyZmlsZW5hbWUKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChFTlZbIkxEX0xJQlJBUllfUEFUSCJdKSB7CiAgICAgICAgICAgICAgICAgICAgc2VhcmNocGF0aHMgPSBFTlZbIkxEX0xJQlJBUllfUEFUSCJdLnNwbGl0KCI6IikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvciAodmFyIGlkZW50IGluIHNlYXJjaHBhdGhzKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNlYXJjaGZpbGUgPSBQQVRILmpvaW4yKHNlYXJjaHBhdGhzW2lkZW50XSwgc3RyZmlsZW5hbWUpOwogICAgICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRmlsZShzZWFyY2hmaWxlKSkgewogICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IHNlYXJjaGZpbGU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChETEZDTi5sb2FkZWRMaWJOYW1lc1tmaWxlbmFtZV0pIHsKICAgICAgICAgICAgdmFyIGhhbmRsZSA9IERMRkNOLmxvYWRlZExpYk5hbWVzW2ZpbGVuYW1lXTsKICAgICAgICAgICAgRExGQ04ubG9hZGVkTGlic1toYW5kbGVdLnJlZmNvdW50Kys7CiAgICAgICAgICAgIHJldHVybiBoYW5kbGUKICAgICAgICB9CiAgICAgICAgaWYgKGZpbGVuYW1lID09PSAiX19zZWxmX18iKSB7CiAgICAgICAgICAgIHZhciBoYW5kbGUgPSAtMTsKICAgICAgICAgICAgdmFyIGxpYl9tb2R1bGUgPSBNb2R1bGUKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgdGFyZ2V0ID0gRlMuZmluZE9iamVjdChmaWxlbmFtZSk7CiAgICAgICAgICAgIGlmICghdGFyZ2V0IHx8IHRhcmdldC5pc0ZvbGRlciB8fCB0YXJnZXQuaXNEZXZpY2UpIHsKICAgICAgICAgICAgICAgIERMRkNOLmVycm9yTXNnID0gIkNvdWxkIG5vdCBmaW5kIGR5bmFtaWMgbGliOiAiICsgZmlsZW5hbWU7CiAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICB9CiAgICAgICAgICAgIEZTLmZvcmNlTG9hZEZpbGUodGFyZ2V0KTsKICAgICAgICAgICAgdmFyIGxpYl9tb2R1bGU7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICB2YXIgbGliX2RhdGEgPSBGUy5yZWFkRmlsZShmaWxlbmFtZSwgewogICAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiAiYmluYXJ5IgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBpZiAoIShsaWJfZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKSBsaWJfZGF0YSA9IG5ldyBVaW50OEFycmF5KGxpYl9kYXRhKTsKICAgICAgICAgICAgICAgIGxpYl9tb2R1bGUgPSBsb2FkV2ViQXNzZW1ibHlNb2R1bGUobGliX2RhdGEpCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIERMRkNOLmVycm9yTXNnID0gIkNvdWxkIG5vdCBldmFsdWF0ZSBkeW5hbWljIGxpYjogIiArIGZpbGVuYW1lICsgIlxuIiArIGU7CiAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBoYW5kbGUgPSAxOwogICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gRExGQ04ubG9hZGVkTGlicykgewogICAgICAgICAgICAgICAgaWYgKERMRkNOLmxvYWRlZExpYnMuaGFzT3duUHJvcGVydHkoa2V5KSkgaGFuZGxlKysKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZmxhZyAmIDI1NikgewogICAgICAgICAgICAgICAgZm9yICh2YXIgaWRlbnQgaW4gbGliX21vZHVsZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChsaWJfbW9kdWxlLmhhc093blByb3BlcnR5KGlkZW50KSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWRlbnRbMF0gPT0gIl8iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb2R1bGVbaWRlbnRdID0gbGliX21vZHVsZVtpZGVudF0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBETEZDTi5sb2FkZWRMaWJzW2hhbmRsZV0gPSB7CiAgICAgICAgICAgIHJlZmNvdW50OiAxLAogICAgICAgICAgICBuYW1lOiBmaWxlbmFtZSwKICAgICAgICAgICAgbW9kdWxlOiBsaWJfbW9kdWxlCiAgICAgICAgfTsKICAgICAgICBETEZDTi5sb2FkZWRMaWJOYW1lc1tmaWxlbmFtZV0gPSBoYW5kbGU7CiAgICAgICAgcmV0dXJuIGhhbmRsZQogICAgfQoKICAgIGZ1bmN0aW9uIF9kbHN5bShoYW5kbGUsIHN5bWJvbCkgewogICAgICAgIHN5bWJvbCA9IFBvaW50ZXJfc3RyaW5naWZ5KHN5bWJvbCk7CiAgICAgICAgaWYgKCFETEZDTi5sb2FkZWRMaWJzW2hhbmRsZV0pIHsKICAgICAgICAgICAgRExGQ04uZXJyb3JNc2cgPSAiVHJpZWQgdG8gZGxzeW0oKSBmcm9tIGFuIHVub3BlbmVkIGhhbmRsZTogIiArIGhhbmRsZTsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgbGliID0gRExGQ04ubG9hZGVkTGlic1toYW5kbGVdOwogICAgICAgICAgICBzeW1ib2wgPSAiXyIgKyBzeW1ib2w7CiAgICAgICAgICAgIGlmICghbGliLm1vZHVsZS5oYXNPd25Qcm9wZXJ0eShzeW1ib2wpKSB7CiAgICAgICAgICAgICAgICBETEZDTi5lcnJvck1zZyA9ICdUcmllZCB0byBsb29rdXAgdW5rbm93biBzeW1ib2wgIicgKyBzeW1ib2wgKyAnIiBpbiBkeW5hbWljIGxpYjogJyArIGxpYi5uYW1lOwogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBsaWIubW9kdWxlW3N5bWJvbF07CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBhZGRGdW5jdGlvbihyZXN1bHQpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fY2FuY2VsX21haW5fbG9vcCgpIHsKICAgICAgICBCcm93c2VyLm1haW5Mb29wLnBhdXNlKCk7CiAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5mdW5jID0gbnVsbAogICAgfQogICAgdmFyIEpTRXZlbnRzID0gewogICAgICAgIGtleUV2ZW50OiAwLAogICAgICAgIG1vdXNlRXZlbnQ6IDAsCiAgICAgICAgd2hlZWxFdmVudDogMCwKICAgICAgICB1aUV2ZW50OiAwLAogICAgICAgIGZvY3VzRXZlbnQ6IDAsCiAgICAgICAgZGV2aWNlT3JpZW50YXRpb25FdmVudDogMCwKICAgICAgICBkZXZpY2VNb3Rpb25FdmVudDogMCwKICAgICAgICBmdWxsc2NyZWVuQ2hhbmdlRXZlbnQ6IDAsCiAgICAgICAgcG9pbnRlcmxvY2tDaGFuZ2VFdmVudDogMCwKICAgICAgICB2aXNpYmlsaXR5Q2hhbmdlRXZlbnQ6IDAsCiAgICAgICAgdG91Y2hFdmVudDogMCwKICAgICAgICBsYXN0R2FtZXBhZFN0YXRlOiBudWxsLAogICAgICAgIGxhc3RHYW1lcGFkU3RhdGVGcmFtZTogbnVsbCwKICAgICAgICBudW1HYW1lcGFkc0Nvbm5lY3RlZDogMCwKICAgICAgICBwcmV2aW91c0Z1bGxzY3JlZW5FbGVtZW50OiBudWxsLAogICAgICAgIHByZXZpb3VzU2NyZWVuWDogbnVsbCwKICAgICAgICBwcmV2aW91c1NjcmVlblk6IG51bGwsCiAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcnNSZWdpc3RlcmVkOiBmYWxzZSwKICAgICAgICBzdGF0aWNJbml0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImdhbWVwYWRjb25uZWN0ZWQiLCAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgKytKU0V2ZW50cy5udW1HYW1lcGFkc0Nvbm5lY3RlZAogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImdhbWVwYWRkaXNjb25uZWN0ZWQiLCAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgLS1KU0V2ZW50cy5udW1HYW1lcGFkc0Nvbm5lY3RlZAogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgdmFyIGZpcnN0U3RhdGUgPSBuYXZpZ2F0b3IuZ2V0R2FtZXBhZHMgPyBuYXZpZ2F0b3IuZ2V0R2FtZXBhZHMoKSA6IG5hdmlnYXRvci53ZWJraXRHZXRHYW1lcGFkcyA/IG5hdmlnYXRvci53ZWJraXRHZXRHYW1lcGFkcygpIDogbnVsbDsKICAgICAgICAgICAgICAgIGlmIChmaXJzdFN0YXRlKSB7CiAgICAgICAgICAgICAgICAgICAgSlNFdmVudHMubnVtR2FtZXBhZHNDb25uZWN0ZWQgPSBmaXJzdFN0YXRlLmxlbmd0aAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgcmVnaXN0ZXJSZW1vdmVFdmVudExpc3RlbmVyczogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoIUpTRXZlbnRzLnJlbW92ZUV2ZW50TGlzdGVuZXJzUmVnaXN0ZXJlZCkgewogICAgICAgICAgICAgICAgX19BVEVYSVRfXy5wdXNoKChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gSlNFdmVudHMuZXZlbnRIYW5kbGVycy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICAgICAgICAgICAgICBKU0V2ZW50cy5fcmVtb3ZlSGFuZGxlcihpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLnJlbW92ZUV2ZW50TGlzdGVuZXJzUmVnaXN0ZXJlZCA9IHRydWUKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIGZpbmRFdmVudFRhcmdldDogKGZ1bmN0aW9uKHRhcmdldCkgewogICAgICAgICAgICBpZiAodGFyZ2V0KSB7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRhcmdldCA9PSAibnVtYmVyIikgewogICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IFBvaW50ZXJfc3RyaW5naWZ5KHRhcmdldCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgPT0gIiN3aW5kb3ciKSByZXR1cm4gd2luZG93OwogICAgICAgICAgICAgICAgZWxzZSBpZiAodGFyZ2V0ID09ICIjZG9jdW1lbnQiKSByZXR1cm4gZG9jdW1lbnQ7CiAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXJnZXQgPT0gIiNzY3JlZW4iKSByZXR1cm4gd2luZG93LnNjcmVlbjsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRhcmdldCA9PSAiI2NhbnZhcyIpIHJldHVybiBNb2R1bGVbImNhbnZhcyJdOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgPT0gInN0cmluZyIpIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YXJnZXQpOwogICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gdGFyZ2V0CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93CiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBkZWZlcnJlZENhbGxzOiBbXSwKICAgICAgICBkZWZlckNhbGw6IChmdW5jdGlvbih0YXJnZXRGdW5jdGlvbiwgcHJlY2VkZW5jZSwgYXJnc0xpc3QpIHsKICAgICAgICAgICAgZnVuY3Rpb24gYXJyYXlzSGF2ZUVxdWFsQ29udGVudChhcnJBLCBhcnJCKSB7CiAgICAgICAgICAgICAgICBpZiAoYXJyQS5sZW5ndGggIT0gYXJyQi5sZW5ndGgpIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4gYXJyQSkgewogICAgICAgICAgICAgICAgICAgIGlmIChhcnJBW2ldICE9IGFyckJbaV0pIHJldHVybiBmYWxzZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKHZhciBpIGluIEpTRXZlbnRzLmRlZmVycmVkQ2FsbHMpIHsKICAgICAgICAgICAgICAgIHZhciBjYWxsID0gSlNFdmVudHMuZGVmZXJyZWRDYWxsc1tpXTsKICAgICAgICAgICAgICAgIGlmIChjYWxsLnRhcmdldEZ1bmN0aW9uID09IHRhcmdldEZ1bmN0aW9uICYmIGFycmF5c0hhdmVFcXVhbENvbnRlbnQoY2FsbC5hcmdzTGlzdCwgYXJnc0xpc3QpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgSlNFdmVudHMuZGVmZXJyZWRDYWxscy5wdXNoKHsKICAgICAgICAgICAgICAgIHRhcmdldEZ1bmN0aW9uOiB0YXJnZXRGdW5jdGlvbiwKICAgICAgICAgICAgICAgIHByZWNlZGVuY2U6IHByZWNlZGVuY2UsCiAgICAgICAgICAgICAgICBhcmdzTGlzdDogYXJnc0xpc3QKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIEpTRXZlbnRzLmRlZmVycmVkQ2FsbHMuc29ydCgoZnVuY3Rpb24oeCwgeSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHgucHJlY2VkZW5jZSA8IHkucHJlY2VkZW5jZQogICAgICAgICAgICB9KSkKICAgICAgICB9KSwKICAgICAgICByZW1vdmVEZWZlcnJlZENhbGxzOiAoZnVuY3Rpb24odGFyZ2V0RnVuY3Rpb24pIHsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBKU0V2ZW50cy5kZWZlcnJlZENhbGxzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICBpZiAoSlNFdmVudHMuZGVmZXJyZWRDYWxsc1tpXS50YXJnZXRGdW5jdGlvbiA9PSB0YXJnZXRGdW5jdGlvbikgewogICAgICAgICAgICAgICAgICAgIEpTRXZlbnRzLmRlZmVycmVkQ2FsbHMuc3BsaWNlKGksIDEpOwogICAgICAgICAgICAgICAgICAgIC0taQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgY2FuUGVyZm9ybUV2ZW50SGFuZGxlclJlcXVlc3RzOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBKU0V2ZW50cy5pbkV2ZW50SGFuZGxlciAmJiBKU0V2ZW50cy5jdXJyZW50RXZlbnRIYW5kbGVyLmFsbG93c0RlZmVycmVkQ2FsbHMKICAgICAgICB9KSwKICAgICAgICBydW5EZWZlcnJlZENhbGxzOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghSlNFdmVudHMuY2FuUGVyZm9ybUV2ZW50SGFuZGxlclJlcXVlc3RzKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgSlNFdmVudHMuZGVmZXJyZWRDYWxscy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgdmFyIGNhbGwgPSBKU0V2ZW50cy5kZWZlcnJlZENhbGxzW2ldOwogICAgICAgICAgICAgICAgSlNFdmVudHMuZGVmZXJyZWRDYWxscy5zcGxpY2UoaSwgMSk7CiAgICAgICAgICAgICAgICAtLWk7CiAgICAgICAgICAgICAgICBjYWxsLnRhcmdldEZ1bmN0aW9uLmFwcGx5KHRoaXMsIGNhbGwuYXJnc0xpc3QpCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBpbkV2ZW50SGFuZGxlcjogMCwKICAgICAgICBjdXJyZW50RXZlbnRIYW5kbGVyOiBudWxsLAogICAgICAgIGV2ZW50SGFuZGxlcnM6IFtdLAogICAgICAgIGlzSW50ZXJuZXRFeHBsb3JlcjogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIikgIT09IC0xIHx8IG5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoIlRyaWRlbnQvIikgPiAwCiAgICAgICAgfSksCiAgICAgICAgcmVtb3ZlQWxsSGFuZGxlcnNPblRhcmdldDogKGZ1bmN0aW9uKHRhcmdldCwgZXZlbnRUeXBlU3RyaW5nKSB7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgSlNFdmVudHMuZXZlbnRIYW5kbGVycy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgaWYgKEpTRXZlbnRzLmV2ZW50SGFuZGxlcnNbaV0udGFyZ2V0ID09IHRhcmdldCAmJiAoIWV2ZW50VHlwZVN0cmluZyB8fCBldmVudFR5cGVTdHJpbmcgPT0gSlNFdmVudHMuZXZlbnRIYW5kbGVyc1tpXS5ldmVudFR5cGVTdHJpbmcpKSB7CiAgICAgICAgICAgICAgICAgICAgSlNFdmVudHMuX3JlbW92ZUhhbmRsZXIoaS0tKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSksCiAgICAgICAgX3JlbW92ZUhhbmRsZXI6IChmdW5jdGlvbihpKSB7CiAgICAgICAgICAgIHZhciBoID0gSlNFdmVudHMuZXZlbnRIYW5kbGVyc1tpXTsKICAgICAgICAgICAgaC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihoLmV2ZW50VHlwZVN0cmluZywgaC5ldmVudExpc3RlbmVyRnVuYywgaC51c2VDYXB0dXJlKTsKICAgICAgICAgICAgSlNFdmVudHMuZXZlbnRIYW5kbGVycy5zcGxpY2UoaSwgMSkKICAgICAgICB9KSwKICAgICAgICByZWdpc3Rlck9yUmVtb3ZlSGFuZGxlcjogKGZ1bmN0aW9uKGV2ZW50SGFuZGxlcikgewogICAgICAgICAgICB2YXIganNFdmVudEhhbmRsZXIgPSBmdW5jdGlvbiBqc0V2ZW50SGFuZGxlcihldmVudCkgewogICAgICAgICAgICAgICAgKytKU0V2ZW50cy5pbkV2ZW50SGFuZGxlcjsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLmN1cnJlbnRFdmVudEhhbmRsZXIgPSBldmVudEhhbmRsZXI7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5ydW5EZWZlcnJlZENhbGxzKCk7CiAgICAgICAgICAgICAgICBldmVudEhhbmRsZXIuaGFuZGxlckZ1bmMoZXZlbnQpOwogICAgICAgICAgICAgICAgSlNFdmVudHMucnVuRGVmZXJyZWRDYWxscygpOwogICAgICAgICAgICAgICAgLS1KU0V2ZW50cy5pbkV2ZW50SGFuZGxlcgogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAoZXZlbnRIYW5kbGVyLmNhbGxiYWNrZnVuYykgewogICAgICAgICAgICAgICAgZXZlbnRIYW5kbGVyLmV2ZW50TGlzdGVuZXJGdW5jID0ganNFdmVudEhhbmRsZXI7CiAgICAgICAgICAgICAgICBldmVudEhhbmRsZXIudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRIYW5kbGVyLmV2ZW50VHlwZVN0cmluZywganNFdmVudEhhbmRsZXIsIGV2ZW50SGFuZGxlci51c2VDYXB0dXJlKTsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLmV2ZW50SGFuZGxlcnMucHVzaChldmVudEhhbmRsZXIpOwogICAgICAgICAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJSZW1vdmVFdmVudExpc3RlbmVycygpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IEpTRXZlbnRzLmV2ZW50SGFuZGxlcnMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoSlNFdmVudHMuZXZlbnRIYW5kbGVyc1tpXS50YXJnZXQgPT0gZXZlbnRIYW5kbGVyLnRhcmdldCAmJiBKU0V2ZW50cy5ldmVudEhhbmRsZXJzW2ldLmV2ZW50VHlwZVN0cmluZyA9PSBldmVudEhhbmRsZXIuZXZlbnRUeXBlU3RyaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEpTRXZlbnRzLl9yZW1vdmVIYW5kbGVyKGktLSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICByZWdpc3RlcktleUV2ZW50Q2FsbGJhY2s6IChmdW5jdGlvbih0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCBldmVudFR5cGVTdHJpbmcpIHsKICAgICAgICAgICAgaWYgKCFKU0V2ZW50cy5rZXlFdmVudCkgewogICAgICAgICAgICAgICAgSlNFdmVudHMua2V5RXZlbnQgPSBfbWFsbG9jKDE2NCkKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgaGFuZGxlckZ1bmMgPSAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gZXZlbnQgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgICAgc3RyaW5nVG9VVEY4KGUua2V5ID8gZS5rZXkgOiAiIiwgSlNFdmVudHMua2V5RXZlbnQgKyAwLCAzMik7CiAgICAgICAgICAgICAgICBzdHJpbmdUb1VURjgoZS5jb2RlID8gZS5jb2RlIDogIiIsIEpTRXZlbnRzLmtleUV2ZW50ICsgMzIsIDMyKTsKICAgICAgICAgICAgICAgIEhFQVAzMltKU0V2ZW50cy5rZXlFdmVudCArIDY0ID4+IDJdID0gZS5sb2NhdGlvbjsKICAgICAgICAgICAgICAgIEhFQVAzMltKU0V2ZW50cy5rZXlFdmVudCArIDY4ID4+IDJdID0gZS5jdHJsS2V5OwogICAgICAgICAgICAgICAgSEVBUDMyW0pTRXZlbnRzLmtleUV2ZW50ICsgNzIgPj4gMl0gPSBlLnNoaWZ0S2V5OwogICAgICAgICAgICAgICAgSEVBUDMyW0pTRXZlbnRzLmtleUV2ZW50ICsgNzYgPj4gMl0gPSBlLmFsdEtleTsKICAgICAgICAgICAgICAgIEhFQVAzMltKU0V2ZW50cy5rZXlFdmVudCArIDgwID4+IDJdID0gZS5tZXRhS2V5OwogICAgICAgICAgICAgICAgSEVBUDMyW0pTRXZlbnRzLmtleUV2ZW50ICsgODQgPj4gMl0gPSBlLnJlcGVhdDsKICAgICAgICAgICAgICAgIHN0cmluZ1RvVVRGOChlLmxvY2FsZSA/IGUubG9jYWxlIDogIiIsIEpTRXZlbnRzLmtleUV2ZW50ICsgODgsIDMyKTsKICAgICAgICAgICAgICAgIHN0cmluZ1RvVVRGOChlLmNoYXIgPyBlLmNoYXIgOiAiIiwgSlNFdmVudHMua2V5RXZlbnQgKyAxMjAsIDMyKTsKICAgICAgICAgICAgICAgIEhFQVAzMltKU0V2ZW50cy5rZXlFdmVudCArIDE1MiA+PiAyXSA9IGUuY2hhckNvZGU7CiAgICAgICAgICAgICAgICBIRUFQMzJbSlNFdmVudHMua2V5RXZlbnQgKyAxNTYgPj4gMl0gPSBlLmtleUNvZGU7CiAgICAgICAgICAgICAgICBIRUFQMzJbSlNFdmVudHMua2V5RXZlbnQgKyAxNjAgPj4gMl0gPSBlLndoaWNoOwogICAgICAgICAgICAgICAgdmFyIHNob3VsZENhbmNlbCA9IE1vZHVsZVsiZHluQ2FsbF9paWlpIl0oY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgSlNFdmVudHMua2V5RXZlbnQsIHVzZXJEYXRhKTsKICAgICAgICAgICAgICAgIGlmIChzaG91bGRDYW5jZWwpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB7CiAgICAgICAgICAgICAgICB0YXJnZXQ6IEpTRXZlbnRzLmZpbmRFdmVudFRhcmdldCh0YXJnZXQpLAogICAgICAgICAgICAgICAgYWxsb3dzRGVmZXJyZWRDYWxsczogSlNFdmVudHMuaXNJbnRlcm5ldEV4cGxvcmVyKCkgPyBmYWxzZSA6IHRydWUsCiAgICAgICAgICAgICAgICBldmVudFR5cGVTdHJpbmc6IGV2ZW50VHlwZVN0cmluZywKICAgICAgICAgICAgICAgIGNhbGxiYWNrZnVuYzogY2FsbGJhY2tmdW5jLAogICAgICAgICAgICAgICAgaGFuZGxlckZ1bmM6IGhhbmRsZXJGdW5jLAogICAgICAgICAgICAgICAgdXNlQ2FwdHVyZTogdXNlQ2FwdHVyZQogICAgICAgICAgICB9OwogICAgICAgICAgICBKU0V2ZW50cy5yZWdpc3Rlck9yUmVtb3ZlSGFuZGxlcihldmVudEhhbmRsZXIpCiAgICAgICAgfSksCiAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0T3JaZXJvczogKGZ1bmN0aW9uKHRhcmdldCkgewogICAgICAgICAgICByZXR1cm4gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCA/IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IHsKICAgICAgICAgICAgICAgIGxlZnQ6IDAsCiAgICAgICAgICAgICAgICB0b3A6IDAKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIGZpbGxNb3VzZUV2ZW50RGF0YTogKGZ1bmN0aW9uKGV2ZW50U3RydWN0LCBlLCB0YXJnZXQpIHsKICAgICAgICAgICAgSEVBUEY2NFtldmVudFN0cnVjdCA+PiAzXSA9IEpTRXZlbnRzLnRpY2soKTsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgOCA+PiAyXSA9IGUuc2NyZWVuWDsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgMTIgPj4gMl0gPSBlLnNjcmVlblk7CiAgICAgICAgICAgIEhFQVAzMltldmVudFN0cnVjdCArIDE2ID4+IDJdID0gZS5jbGllbnRYOwogICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyAyMCA+PiAyXSA9IGUuY2xpZW50WTsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgMjQgPj4gMl0gPSBlLmN0cmxLZXk7CiAgICAgICAgICAgIEhFQVAzMltldmVudFN0cnVjdCArIDI4ID4+IDJdID0gZS5zaGlmdEtleTsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgMzIgPj4gMl0gPSBlLmFsdEtleTsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgMzYgPj4gMl0gPSBlLm1ldGFLZXk7CiAgICAgICAgICAgIEhFQVAxNltldmVudFN0cnVjdCArIDQwID4+IDFdID0gZS5idXR0b247CiAgICAgICAgICAgIEhFQVAxNltldmVudFN0cnVjdCArIDQyID4+IDFdID0gZS5idXR0b25zOwogICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyA0NCA+PiAyXSA9IGVbIm1vdmVtZW50WCJdIHx8IGVbIm1vek1vdmVtZW50WCJdIHx8IGVbIndlYmtpdE1vdmVtZW50WCJdIHx8IGUuc2NyZWVuWCAtIEpTRXZlbnRzLnByZXZpb3VzU2NyZWVuWDsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgNDggPj4gMl0gPSBlWyJtb3ZlbWVudFkiXSB8fCBlWyJtb3pNb3ZlbWVudFkiXSB8fCBlWyJ3ZWJraXRNb3ZlbWVudFkiXSB8fCBlLnNjcmVlblkgLSBKU0V2ZW50cy5wcmV2aW91c1NjcmVlblk7CiAgICAgICAgICAgIGlmIChNb2R1bGVbImNhbnZhcyJdKSB7CiAgICAgICAgICAgICAgICB2YXIgcmVjdCA9IE1vZHVsZVsiY2FudmFzIl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyA2MCA+PiAyXSA9IGUuY2xpZW50WCAtIHJlY3QubGVmdDsKICAgICAgICAgICAgICAgIEhFQVAzMltldmVudFN0cnVjdCArIDY0ID4+IDJdID0gZS5jbGllbnRZIC0gcmVjdC50b3AKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIEhFQVAzMltldmVudFN0cnVjdCArIDYwID4+IDJdID0gMDsKICAgICAgICAgICAgICAgIEhFQVAzMltldmVudFN0cnVjdCArIDY0ID4+IDJdID0gMAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0YXJnZXQpIHsKICAgICAgICAgICAgICAgIHZhciByZWN0ID0gSlNFdmVudHMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0T3JaZXJvcyh0YXJnZXQpOwogICAgICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgNTIgPj4gMl0gPSBlLmNsaWVudFggLSByZWN0LmxlZnQ7CiAgICAgICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyA1NiA+PiAyXSA9IGUuY2xpZW50WSAtIHJlY3QudG9wCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyA1MiA+PiAyXSA9IDA7CiAgICAgICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyA1NiA+PiAyXSA9IDAKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZS50eXBlICE9PSAid2hlZWwiICYmIGUudHlwZSAhPT0gIm1vdXNld2hlZWwiKSB7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5wcmV2aW91c1NjcmVlblggPSBlLnNjcmVlblg7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5wcmV2aW91c1NjcmVlblkgPSBlLnNjcmVlblkKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIHJlZ2lzdGVyTW91c2VFdmVudENhbGxiYWNrOiAoZnVuY3Rpb24odGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgZXZlbnRUeXBlU3RyaW5nKSB7CiAgICAgICAgICAgIGlmICghSlNFdmVudHMubW91c2VFdmVudCkgewogICAgICAgICAgICAgICAgSlNFdmVudHMubW91c2VFdmVudCA9IF9tYWxsb2MoNzIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFyZ2V0ID0gSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCk7CiAgICAgICAgICAgIHZhciBoYW5kbGVyRnVuYyA9IChmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5maWxsTW91c2VFdmVudERhdGEoSlNFdmVudHMubW91c2VFdmVudCwgZSwgdGFyZ2V0KTsKICAgICAgICAgICAgICAgIHZhciBzaG91bGRDYW5jZWwgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIEpTRXZlbnRzLm1vdXNlRXZlbnQsIHVzZXJEYXRhKTsKICAgICAgICAgICAgICAgIGlmIChzaG91bGRDYW5jZWwpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB7CiAgICAgICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCwKICAgICAgICAgICAgICAgIGFsbG93c0RlZmVycmVkQ2FsbHM6IGV2ZW50VHlwZVN0cmluZyAhPSAibW91c2Vtb3ZlIiAmJiBldmVudFR5cGVTdHJpbmcgIT0gIm1vdXNlZW50ZXIiICYmIGV2ZW50VHlwZVN0cmluZyAhPSAibW91c2VsZWF2ZSIsCiAgICAgICAgICAgICAgICBldmVudFR5cGVTdHJpbmc6IGV2ZW50VHlwZVN0cmluZywKICAgICAgICAgICAgICAgIGNhbGxiYWNrZnVuYzogY2FsbGJhY2tmdW5jLAogICAgICAgICAgICAgICAgaGFuZGxlckZ1bmM6IGhhbmRsZXJGdW5jLAogICAgICAgICAgICAgICAgdXNlQ2FwdHVyZTogdXNlQ2FwdHVyZQogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAoSlNFdmVudHMuaXNJbnRlcm5ldEV4cGxvcmVyKCkgJiYgZXZlbnRUeXBlU3RyaW5nID09ICJtb3VzZWRvd24iKSBldmVudEhhbmRsZXIuYWxsb3dzRGVmZXJyZWRDYWxscyA9IGZhbHNlOwogICAgICAgICAgICBKU0V2ZW50cy5yZWdpc3Rlck9yUmVtb3ZlSGFuZGxlcihldmVudEhhbmRsZXIpCiAgICAgICAgfSksCiAgICAgICAgcmVnaXN0ZXJXaGVlbEV2ZW50Q2FsbGJhY2s6IChmdW5jdGlvbih0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCBldmVudFR5cGVTdHJpbmcpIHsKICAgICAgICAgICAgaWYgKCFKU0V2ZW50cy53aGVlbEV2ZW50KSB7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy53aGVlbEV2ZW50ID0gX21hbGxvYygxMDQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFyZ2V0ID0gSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCk7CiAgICAgICAgICAgIHZhciB3aGVlbEhhbmRsZXJGdW5jID0gKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IGV2ZW50IHx8IHdpbmRvdy5ldmVudDsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLmZpbGxNb3VzZUV2ZW50RGF0YShKU0V2ZW50cy53aGVlbEV2ZW50LCBlLCB0YXJnZXQpOwogICAgICAgICAgICAgICAgSEVBUEY2NFtKU0V2ZW50cy53aGVlbEV2ZW50ICsgNzIgPj4gM10gPSBlWyJkZWx0YVgiXTsKICAgICAgICAgICAgICAgIEhFQVBGNjRbSlNFdmVudHMud2hlZWxFdmVudCArIDgwID4+IDNdID0gZVsiZGVsdGFZIl07CiAgICAgICAgICAgICAgICBIRUFQRjY0W0pTRXZlbnRzLndoZWVsRXZlbnQgKyA4OCA+PiAzXSA9IGVbImRlbHRhWiJdOwogICAgICAgICAgICAgICAgSEVBUDMyW0pTRXZlbnRzLndoZWVsRXZlbnQgKyA5NiA+PiAyXSA9IGVbImRlbHRhTW9kZSJdOwogICAgICAgICAgICAgICAgdmFyIHNob3VsZENhbmNlbCA9IE1vZHVsZVsiZHluQ2FsbF9paWlpIl0oY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgSlNFdmVudHMud2hlZWxFdmVudCwgdXNlckRhdGEpOwogICAgICAgICAgICAgICAgaWYgKHNob3VsZENhbmNlbCkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIG1vdXNlV2hlZWxIYW5kbGVyRnVuYyA9IChmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5maWxsTW91c2VFdmVudERhdGEoSlNFdmVudHMud2hlZWxFdmVudCwgZSwgdGFyZ2V0KTsKICAgICAgICAgICAgICAgIEhFQVBGNjRbSlNFdmVudHMud2hlZWxFdmVudCArIDcyID4+IDNdID0gZVsid2hlZWxEZWx0YVgiXSB8fCAwOwogICAgICAgICAgICAgICAgSEVBUEY2NFtKU0V2ZW50cy53aGVlbEV2ZW50ICsgODAgPj4gM10gPSAtKGVbIndoZWVsRGVsdGFZIl0gPyBlWyJ3aGVlbERlbHRhWSJdIDogZVsid2hlZWxEZWx0YSJdKTsKICAgICAgICAgICAgICAgIEhFQVBGNjRbSlNFdmVudHMud2hlZWxFdmVudCArIDg4ID4+IDNdID0gMDsKICAgICAgICAgICAgICAgIEhFQVAzMltKU0V2ZW50cy53aGVlbEV2ZW50ICsgOTYgPj4gMl0gPSAwOwogICAgICAgICAgICAgICAgdmFyIHNob3VsZENhbmNlbCA9IE1vZHVsZVsiZHluQ2FsbF9paWlpIl0oY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgSlNFdmVudHMud2hlZWxFdmVudCwgdXNlckRhdGEpOwogICAgICAgICAgICAgICAgaWYgKHNob3VsZENhbmNlbCkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIGV2ZW50SGFuZGxlciA9IHsKICAgICAgICAgICAgICAgIHRhcmdldDogdGFyZ2V0LAogICAgICAgICAgICAgICAgYWxsb3dzRGVmZXJyZWRDYWxsczogdHJ1ZSwKICAgICAgICAgICAgICAgIGV2ZW50VHlwZVN0cmluZzogZXZlbnRUeXBlU3RyaW5nLAogICAgICAgICAgICAgICAgY2FsbGJhY2tmdW5jOiBjYWxsYmFja2Z1bmMsCiAgICAgICAgICAgICAgICBoYW5kbGVyRnVuYzogZXZlbnRUeXBlU3RyaW5nID09ICJ3aGVlbCIgPyB3aGVlbEhhbmRsZXJGdW5jIDogbW91c2VXaGVlbEhhbmRsZXJGdW5jLAogICAgICAgICAgICAgICAgdXNlQ2FwdHVyZTogdXNlQ2FwdHVyZQogICAgICAgICAgICB9OwogICAgICAgICAgICBKU0V2ZW50cy5yZWdpc3Rlck9yUmVtb3ZlSGFuZGxlcihldmVudEhhbmRsZXIpCiAgICAgICAgfSksCiAgICAgICAgcGFnZVNjcm9sbFBvczogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAod2luZG93LnBhZ2VYT2Zmc2V0ID4gMCB8fCB3aW5kb3cucGFnZVlPZmZzZXQgPiAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gW3dpbmRvdy5wYWdlWE9mZnNldCwgd2luZG93LnBhZ2VZT2Zmc2V0XQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgIT09ICJ1bmRlZmluZWQiIHx8IHR5cGVvZiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICAgICAgcmV0dXJuIFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcF0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gW2RvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCB8IDAsIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHwgMF0KICAgICAgICB9KSwKICAgICAgICByZWdpc3RlclVpRXZlbnRDYWxsYmFjazogKGZ1bmN0aW9uKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIGV2ZW50VHlwZVN0cmluZykgewogICAgICAgICAgICBpZiAoIUpTRXZlbnRzLnVpRXZlbnQpIHsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLnVpRXZlbnQgPSBfbWFsbG9jKDM2KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChldmVudFR5cGVTdHJpbmcgPT0gInNjcm9sbCIgJiYgIXRhcmdldCkgewogICAgICAgICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRhcmdldCA9IEpTRXZlbnRzLmZpbmRFdmVudFRhcmdldCh0YXJnZXQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGhhbmRsZXJGdW5jID0gKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IGV2ZW50IHx8IHdpbmRvdy5ldmVudDsKICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldCAhPSB0YXJnZXQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBzY3JvbGxQb3MgPSBKU0V2ZW50cy5wYWdlU2Nyb2xsUG9zKCk7CiAgICAgICAgICAgICAgICBIRUFQMzJbSlNFdmVudHMudWlFdmVudCA+PiAyXSA9IGUuZGV0YWlsOwogICAgICAgICAgICAgICAgSEVBUDMyW0pTRXZlbnRzLnVpRXZlbnQgKyA0ID4+IDJdID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDsKICAgICAgICAgICAgICAgIEhFQVAzMltKU0V2ZW50cy51aUV2ZW50ICsgOCA+PiAyXSA9IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OwogICAgICAgICAgICAgICAgSEVBUDMyW0pTRXZlbnRzLnVpRXZlbnQgKyAxMiA+PiAyXSA9IHdpbmRvdy5pbm5lcldpZHRoOwogICAgICAgICAgICAgICAgSEVBUDMyW0pTRXZlbnRzLnVpRXZlbnQgKyAxNiA+PiAyXSA9IHdpbmRvdy5pbm5lckhlaWdodDsKICAgICAgICAgICAgICAgIEhFQVAzMltKU0V2ZW50cy51aUV2ZW50ICsgMjAgPj4gMl0gPSB3aW5kb3cub3V0ZXJXaWR0aDsKICAgICAgICAgICAgICAgIEhFQVAzMltKU0V2ZW50cy51aUV2ZW50ICsgMjQgPj4gMl0gPSB3aW5kb3cub3V0ZXJIZWlnaHQ7CiAgICAgICAgICAgICAgICBIRUFQMzJbSlNFdmVudHMudWlFdmVudCArIDI4ID4+IDJdID0gc2Nyb2xsUG9zWzBdOwogICAgICAgICAgICAgICAgSEVBUDMyW0pTRXZlbnRzLnVpRXZlbnQgKyAzMiA+PiAyXSA9IHNjcm9sbFBvc1sxXTsKICAgICAgICAgICAgICAgIHZhciBzaG91bGRDYW5jZWwgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIEpTRXZlbnRzLnVpRXZlbnQsIHVzZXJEYXRhKTsKICAgICAgICAgICAgICAgIGlmIChzaG91bGRDYW5jZWwpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB7CiAgICAgICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCwKICAgICAgICAgICAgICAgIGFsbG93c0RlZmVycmVkQ2FsbHM6IGZhbHNlLAogICAgICAgICAgICAgICAgZXZlbnRUeXBlU3RyaW5nOiBldmVudFR5cGVTdHJpbmcsCiAgICAgICAgICAgICAgICBjYWxsYmFja2Z1bmM6IGNhbGxiYWNrZnVuYywKICAgICAgICAgICAgICAgIGhhbmRsZXJGdW5jOiBoYW5kbGVyRnVuYywKICAgICAgICAgICAgICAgIHVzZUNhcHR1cmU6IHVzZUNhcHR1cmUKICAgICAgICAgICAgfTsKICAgICAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJPclJlbW92ZUhhbmRsZXIoZXZlbnRIYW5kbGVyKQogICAgICAgIH0pLAogICAgICAgIGdldE5vZGVOYW1lRm9yVGFyZ2V0OiAoZnVuY3Rpb24odGFyZ2V0KSB7CiAgICAgICAgICAgIGlmICghdGFyZ2V0KSByZXR1cm4gIiI7CiAgICAgICAgICAgIGlmICh0YXJnZXQgPT0gd2luZG93KSByZXR1cm4gIiN3aW5kb3ciOwogICAgICAgICAgICBpZiAodGFyZ2V0ID09IHdpbmRvdy5zY3JlZW4pIHJldHVybiAiI3NjcmVlbiI7CiAgICAgICAgICAgIHJldHVybiB0YXJnZXQgJiYgdGFyZ2V0Lm5vZGVOYW1lID8gdGFyZ2V0Lm5vZGVOYW1lIDogIiIKICAgICAgICB9KSwKICAgICAgICByZWdpc3RlckZvY3VzRXZlbnRDYWxsYmFjazogKGZ1bmN0aW9uKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIGV2ZW50VHlwZVN0cmluZykgewogICAgICAgICAgICBpZiAoIUpTRXZlbnRzLmZvY3VzRXZlbnQpIHsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLmZvY3VzRXZlbnQgPSBfbWFsbG9jKDI1NikKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgaGFuZGxlckZ1bmMgPSAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gZXZlbnQgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgICAgdmFyIG5vZGVOYW1lID0gSlNFdmVudHMuZ2V0Tm9kZU5hbWVGb3JUYXJnZXQoZS50YXJnZXQpOwogICAgICAgICAgICAgICAgdmFyIGlkID0gZS50YXJnZXQuaWQgPyBlLnRhcmdldC5pZCA6ICIiOwogICAgICAgICAgICAgICAgc3RyaW5nVG9VVEY4KG5vZGVOYW1lLCBKU0V2ZW50cy5mb2N1c0V2ZW50ICsgMCwgMTI4KTsKICAgICAgICAgICAgICAgIHN0cmluZ1RvVVRGOChpZCwgSlNFdmVudHMuZm9jdXNFdmVudCArIDEyOCwgMTI4KTsKICAgICAgICAgICAgICAgIHZhciBzaG91bGRDYW5jZWwgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIEpTRXZlbnRzLmZvY3VzRXZlbnQsIHVzZXJEYXRhKTsKICAgICAgICAgICAgICAgIGlmIChzaG91bGRDYW5jZWwpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB7CiAgICAgICAgICAgICAgICB0YXJnZXQ6IEpTRXZlbnRzLmZpbmRFdmVudFRhcmdldCh0YXJnZXQpLAogICAgICAgICAgICAgICAgYWxsb3dzRGVmZXJyZWRDYWxsczogZmFsc2UsCiAgICAgICAgICAgICAgICBldmVudFR5cGVTdHJpbmc6IGV2ZW50VHlwZVN0cmluZywKICAgICAgICAgICAgICAgIGNhbGxiYWNrZnVuYzogY2FsbGJhY2tmdW5jLAogICAgICAgICAgICAgICAgaGFuZGxlckZ1bmM6IGhhbmRsZXJGdW5jLAogICAgICAgICAgICAgICAgdXNlQ2FwdHVyZTogdXNlQ2FwdHVyZQogICAgICAgICAgICB9OwogICAgICAgICAgICBKU0V2ZW50cy5yZWdpc3Rlck9yUmVtb3ZlSGFuZGxlcihldmVudEhhbmRsZXIpCiAgICAgICAgfSksCiAgICAgICAgdGljazogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAod2luZG93WyJwZXJmb3JtYW5jZSJdICYmIHdpbmRvd1sicGVyZm9ybWFuY2UiXVsibm93Il0pIHJldHVybiB3aW5kb3dbInBlcmZvcm1hbmNlIl1bIm5vdyJdKCk7CiAgICAgICAgICAgIGVsc2UgcmV0dXJuIERhdGUubm93KCkKICAgICAgICB9KSwKICAgICAgICByZWdpc3RlckRldmljZU9yaWVudGF0aW9uRXZlbnRDYWxsYmFjazogKGZ1bmN0aW9uKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIGV2ZW50VHlwZVN0cmluZykgewogICAgICAgICAgICBpZiAoIUpTRXZlbnRzLmRldmljZU9yaWVudGF0aW9uRXZlbnQpIHsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLmRldmljZU9yaWVudGF0aW9uRXZlbnQgPSBfbWFsbG9jKDQwKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBoYW5kbGVyRnVuYyA9IChmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7CiAgICAgICAgICAgICAgICBIRUFQRjY0W0pTRXZlbnRzLmRldmljZU9yaWVudGF0aW9uRXZlbnQgPj4gM10gPSBKU0V2ZW50cy50aWNrKCk7CiAgICAgICAgICAgICAgICBIRUFQRjY0W0pTRXZlbnRzLmRldmljZU9yaWVudGF0aW9uRXZlbnQgKyA4ID4+IDNdID0gZS5hbHBoYTsKICAgICAgICAgICAgICAgIEhFQVBGNjRbSlNFdmVudHMuZGV2aWNlT3JpZW50YXRpb25FdmVudCArIDE2ID4+IDNdID0gZS5iZXRhOwogICAgICAgICAgICAgICAgSEVBUEY2NFtKU0V2ZW50cy5kZXZpY2VPcmllbnRhdGlvbkV2ZW50ICsgMjQgPj4gM10gPSBlLmdhbW1hOwogICAgICAgICAgICAgICAgSEVBUDMyW0pTRXZlbnRzLmRldmljZU9yaWVudGF0aW9uRXZlbnQgKyAzMiA+PiAyXSA9IGUuYWJzb2x1dGU7CiAgICAgICAgICAgICAgICB2YXIgc2hvdWxkQ2FuY2VsID0gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCBKU0V2ZW50cy5kZXZpY2VPcmllbnRhdGlvbkV2ZW50LCB1c2VyRGF0YSk7CiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQ2FuY2VsKSB7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgZXZlbnRIYW5kbGVyID0gewogICAgICAgICAgICAgICAgdGFyZ2V0OiBKU0V2ZW50cy5maW5kRXZlbnRUYXJnZXQodGFyZ2V0KSwKICAgICAgICAgICAgICAgIGFsbG93c0RlZmVycmVkQ2FsbHM6IGZhbHNlLAogICAgICAgICAgICAgICAgZXZlbnRUeXBlU3RyaW5nOiBldmVudFR5cGVTdHJpbmcsCiAgICAgICAgICAgICAgICBjYWxsYmFja2Z1bmM6IGNhbGxiYWNrZnVuYywKICAgICAgICAgICAgICAgIGhhbmRsZXJGdW5jOiBoYW5kbGVyRnVuYywKICAgICAgICAgICAgICAgIHVzZUNhcHR1cmU6IHVzZUNhcHR1cmUKICAgICAgICAgICAgfTsKICAgICAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJPclJlbW92ZUhhbmRsZXIoZXZlbnRIYW5kbGVyKQogICAgICAgIH0pLAogICAgICAgIHJlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRDYWxsYmFjazogKGZ1bmN0aW9uKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIGV2ZW50VHlwZVN0cmluZykgewogICAgICAgICAgICBpZiAoIUpTRXZlbnRzLmRldmljZU1vdGlvbkV2ZW50KSB7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5kZXZpY2VNb3Rpb25FdmVudCA9IF9tYWxsb2MoODApCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGhhbmRsZXJGdW5jID0gKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IGV2ZW50IHx8IHdpbmRvdy5ldmVudDsKICAgICAgICAgICAgICAgIEhFQVBGNjRbSlNFdmVudHMuZGV2aWNlTW90aW9uRXZlbnQgPj4gM10gPSBKU0V2ZW50cy50aWNrKCk7CiAgICAgICAgICAgICAgICBIRUFQRjY0W0pTRXZlbnRzLmRldmljZU1vdGlvbkV2ZW50ICsgOCA+PiAzXSA9IGUuYWNjZWxlcmF0aW9uLng7CiAgICAgICAgICAgICAgICBIRUFQRjY0W0pTRXZlbnRzLmRldmljZU1vdGlvbkV2ZW50ICsgMTYgPj4gM10gPSBlLmFjY2VsZXJhdGlvbi55OwogICAgICAgICAgICAgICAgSEVBUEY2NFtKU0V2ZW50cy5kZXZpY2VNb3Rpb25FdmVudCArIDI0ID4+IDNdID0gZS5hY2NlbGVyYXRpb24uejsKICAgICAgICAgICAgICAgIEhFQVBGNjRbSlNFdmVudHMuZGV2aWNlTW90aW9uRXZlbnQgKyAzMiA+PiAzXSA9IGUuYWNjZWxlcmF0aW9uSW5jbHVkaW5nR3Jhdml0eS54OwogICAgICAgICAgICAgICAgSEVBUEY2NFtKU0V2ZW50cy5kZXZpY2VNb3Rpb25FdmVudCArIDQwID4+IDNdID0gZS5hY2NlbGVyYXRpb25JbmNsdWRpbmdHcmF2aXR5Lnk7CiAgICAgICAgICAgICAgICBIRUFQRjY0W0pTRXZlbnRzLmRldmljZU1vdGlvbkV2ZW50ICsgNDggPj4gM10gPSBlLmFjY2VsZXJhdGlvbkluY2x1ZGluZ0dyYXZpdHkuejsKICAgICAgICAgICAgICAgIEhFQVBGNjRbSlNFdmVudHMuZGV2aWNlTW90aW9uRXZlbnQgKyA1NiA+PiAzXSA9IGUucm90YXRpb25SYXRlLmFscGhhOwogICAgICAgICAgICAgICAgSEVBUEY2NFtKU0V2ZW50cy5kZXZpY2VNb3Rpb25FdmVudCArIDY0ID4+IDNdID0gZS5yb3RhdGlvblJhdGUuYmV0YTsKICAgICAgICAgICAgICAgIEhFQVBGNjRbSlNFdmVudHMuZGV2aWNlTW90aW9uRXZlbnQgKyA3MiA+PiAzXSA9IGUucm90YXRpb25SYXRlLmdhbW1hOwogICAgICAgICAgICAgICAgdmFyIHNob3VsZENhbmNlbCA9IE1vZHVsZVsiZHluQ2FsbF9paWlpIl0oY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgSlNFdmVudHMuZGV2aWNlTW90aW9uRXZlbnQsIHVzZXJEYXRhKTsKICAgICAgICAgICAgICAgIGlmIChzaG91bGRDYW5jZWwpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB7CiAgICAgICAgICAgICAgICB0YXJnZXQ6IEpTRXZlbnRzLmZpbmRFdmVudFRhcmdldCh0YXJnZXQpLAogICAgICAgICAgICAgICAgYWxsb3dzRGVmZXJyZWRDYWxsczogZmFsc2UsCiAgICAgICAgICAgICAgICBldmVudFR5cGVTdHJpbmc6IGV2ZW50VHlwZVN0cmluZywKICAgICAgICAgICAgICAgIGNhbGxiYWNrZnVuYzogY2FsbGJhY2tmdW5jLAogICAgICAgICAgICAgICAgaGFuZGxlckZ1bmM6IGhhbmRsZXJGdW5jLAogICAgICAgICAgICAgICAgdXNlQ2FwdHVyZTogdXNlQ2FwdHVyZQogICAgICAgICAgICB9OwogICAgICAgICAgICBKU0V2ZW50cy5yZWdpc3Rlck9yUmVtb3ZlSGFuZGxlcihldmVudEhhbmRsZXIpCiAgICAgICAgfSksCiAgICAgICAgc2NyZWVuT3JpZW50YXRpb246IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCF3aW5kb3cuc2NyZWVuKSByZXR1cm4gdW5kZWZpbmVkOwogICAgICAgICAgICByZXR1cm4gd2luZG93LnNjcmVlbi5vcmllbnRhdGlvbiB8fCB3aW5kb3cuc2NyZWVuLm1vek9yaWVudGF0aW9uIHx8IHdpbmRvdy5zY3JlZW4ud2Via2l0T3JpZW50YXRpb24gfHwgd2luZG93LnNjcmVlbi5tc09yaWVudGF0aW9uCiAgICAgICAgfSksCiAgICAgICAgZmlsbE9yaWVudGF0aW9uQ2hhbmdlRXZlbnREYXRhOiAoZnVuY3Rpb24oZXZlbnRTdHJ1Y3QsIGUpIHsKICAgICAgICAgICAgdmFyIG9yaWVudGF0aW9ucyA9IFsicG9ydHJhaXQtcHJpbWFyeSIsICJwb3J0cmFpdC1zZWNvbmRhcnkiLCAibGFuZHNjYXBlLXByaW1hcnkiLCAibGFuZHNjYXBlLXNlY29uZGFyeSJdOwogICAgICAgICAgICB2YXIgb3JpZW50YXRpb25zMiA9IFsicG9ydHJhaXQiLCAicG9ydHJhaXQiLCAibGFuZHNjYXBlIiwgImxhbmRzY2FwZSJdOwogICAgICAgICAgICB2YXIgb3JpZW50YXRpb25TdHJpbmcgPSBKU0V2ZW50cy5zY3JlZW5PcmllbnRhdGlvbigpOwogICAgICAgICAgICB2YXIgb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbnMuaW5kZXhPZihvcmllbnRhdGlvblN0cmluZyk7CiAgICAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSAtMSkgewogICAgICAgICAgICAgICAgb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbnMyLmluZGV4T2Yob3JpZW50YXRpb25TdHJpbmcpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ID4+IDJdID0gMSA8PCBvcmllbnRhdGlvbjsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgNCA+PiAyXSA9IHdpbmRvdy5vcmllbnRhdGlvbgogICAgICAgIH0pLAogICAgICAgIHJlZ2lzdGVyT3JpZW50YXRpb25DaGFuZ2VFdmVudENhbGxiYWNrOiAoZnVuY3Rpb24odGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgZXZlbnRUeXBlU3RyaW5nKSB7CiAgICAgICAgICAgIGlmICghSlNFdmVudHMub3JpZW50YXRpb25DaGFuZ2VFdmVudCkgewogICAgICAgICAgICAgICAgSlNFdmVudHMub3JpZW50YXRpb25DaGFuZ2VFdmVudCA9IF9tYWxsb2MoOCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIXRhcmdldCkgewogICAgICAgICAgICAgICAgdGFyZ2V0ID0gd2luZG93LnNjcmVlbgogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGFyZ2V0ID0gSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCkKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgaGFuZGxlckZ1bmMgPSAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gZXZlbnQgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgICAgSlNFdmVudHMuZmlsbE9yaWVudGF0aW9uQ2hhbmdlRXZlbnREYXRhKEpTRXZlbnRzLm9yaWVudGF0aW9uQ2hhbmdlRXZlbnQsIGUpOwogICAgICAgICAgICAgICAgdmFyIHNob3VsZENhbmNlbCA9IE1vZHVsZVsiZHluQ2FsbF9paWlpIl0oY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgSlNFdmVudHMub3JpZW50YXRpb25DaGFuZ2VFdmVudCwgdXNlckRhdGEpOwogICAgICAgICAgICAgICAgaWYgKHNob3VsZENhbmNlbCkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgaWYgKGV2ZW50VHlwZVN0cmluZyA9PSAib3JpZW50YXRpb25jaGFuZ2UiICYmIHdpbmRvdy5zY3JlZW4ubW96T3JpZW50YXRpb24gIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgZXZlbnRUeXBlU3RyaW5nID0gIm1vem9yaWVudGF0aW9uY2hhbmdlIgogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB7CiAgICAgICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCwKICAgICAgICAgICAgICAgIGFsbG93c0RlZmVycmVkQ2FsbHM6IGZhbHNlLAogICAgICAgICAgICAgICAgZXZlbnRUeXBlU3RyaW5nOiBldmVudFR5cGVTdHJpbmcsCiAgICAgICAgICAgICAgICBjYWxsYmFja2Z1bmM6IGNhbGxiYWNrZnVuYywKICAgICAgICAgICAgICAgIGhhbmRsZXJGdW5jOiBoYW5kbGVyRnVuYywKICAgICAgICAgICAgICAgIHVzZUNhcHR1cmU6IHVzZUNhcHR1cmUKICAgICAgICAgICAgfTsKICAgICAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJPclJlbW92ZUhhbmRsZXIoZXZlbnRIYW5kbGVyKQogICAgICAgIH0pLAogICAgICAgIGZ1bGxzY3JlZW5FbmFibGVkOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5mdWxsc2NyZWVuRW5hYmxlZCB8fCBkb2N1bWVudC5tb3pGdWxsU2NyZWVuRW5hYmxlZCB8fCBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCB8fCBkb2N1bWVudC5tc0Z1bGxzY3JlZW5FbmFibGVkCiAgICAgICAgfSksCiAgICAgICAgZmlsbEZ1bGxzY3JlZW5DaGFuZ2VFdmVudERhdGE6IChmdW5jdGlvbihldmVudFN0cnVjdCwgZSkgewogICAgICAgICAgICB2YXIgZnVsbHNjcmVlbkVsZW1lbnQgPSBkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCB8fCBkb2N1bWVudC5tb3pGdWxsU2NyZWVuRWxlbWVudCB8fCBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudCB8fCBkb2N1bWVudC5tc0Z1bGxzY3JlZW5FbGVtZW50OwogICAgICAgICAgICB2YXIgaXNGdWxsc2NyZWVuID0gISFmdWxsc2NyZWVuRWxlbWVudDsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ID4+IDJdID0gaXNGdWxsc2NyZWVuOwogICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyA0ID4+IDJdID0gSlNFdmVudHMuZnVsbHNjcmVlbkVuYWJsZWQoKTsKICAgICAgICAgICAgdmFyIHJlcG9ydGVkRWxlbWVudCA9IGlzRnVsbHNjcmVlbiA/IGZ1bGxzY3JlZW5FbGVtZW50IDogSlNFdmVudHMucHJldmlvdXNGdWxsc2NyZWVuRWxlbWVudDsKICAgICAgICAgICAgdmFyIG5vZGVOYW1lID0gSlNFdmVudHMuZ2V0Tm9kZU5hbWVGb3JUYXJnZXQocmVwb3J0ZWRFbGVtZW50KTsKICAgICAgICAgICAgdmFyIGlkID0gcmVwb3J0ZWRFbGVtZW50ICYmIHJlcG9ydGVkRWxlbWVudC5pZCA/IHJlcG9ydGVkRWxlbWVudC5pZCA6ICIiOwogICAgICAgICAgICBzdHJpbmdUb1VURjgobm9kZU5hbWUsIGV2ZW50U3RydWN0ICsgOCwgMTI4KTsKICAgICAgICAgICAgc3RyaW5nVG9VVEY4KGlkLCBldmVudFN0cnVjdCArIDEzNiwgMTI4KTsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgMjY0ID4+IDJdID0gcmVwb3J0ZWRFbGVtZW50ID8gcmVwb3J0ZWRFbGVtZW50LmNsaWVudFdpZHRoIDogMDsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgMjY4ID4+IDJdID0gcmVwb3J0ZWRFbGVtZW50ID8gcmVwb3J0ZWRFbGVtZW50LmNsaWVudEhlaWdodCA6IDA7CiAgICAgICAgICAgIEhFQVAzMltldmVudFN0cnVjdCArIDI3MiA+PiAyXSA9IHNjcmVlbi53aWR0aDsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgMjc2ID4+IDJdID0gc2NyZWVuLmhlaWdodDsKICAgICAgICAgICAgaWYgKGlzRnVsbHNjcmVlbikgewogICAgICAgICAgICAgICAgSlNFdmVudHMucHJldmlvdXNGdWxsc2NyZWVuRWxlbWVudCA9IGZ1bGxzY3JlZW5FbGVtZW50CiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICByZWdpc3RlckZ1bGxzY3JlZW5DaGFuZ2VFdmVudENhbGxiYWNrOiAoZnVuY3Rpb24odGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgZXZlbnRUeXBlU3RyaW5nKSB7CiAgICAgICAgICAgIGlmICghSlNFdmVudHMuZnVsbHNjcmVlbkNoYW5nZUV2ZW50KSB7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5mdWxsc2NyZWVuQ2hhbmdlRXZlbnQgPSBfbWFsbG9jKDI4MCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIXRhcmdldCkgewogICAgICAgICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRhcmdldCA9IEpTRXZlbnRzLmZpbmRFdmVudFRhcmdldCh0YXJnZXQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGhhbmRsZXJGdW5jID0gKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IGV2ZW50IHx8IHdpbmRvdy5ldmVudDsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLmZpbGxGdWxsc2NyZWVuQ2hhbmdlRXZlbnREYXRhKEpTRXZlbnRzLmZ1bGxzY3JlZW5DaGFuZ2VFdmVudCwgZSk7CiAgICAgICAgICAgICAgICB2YXIgc2hvdWxkQ2FuY2VsID0gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCBKU0V2ZW50cy5mdWxsc2NyZWVuQ2hhbmdlRXZlbnQsIHVzZXJEYXRhKTsKICAgICAgICAgICAgICAgIGlmIChzaG91bGRDYW5jZWwpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB7CiAgICAgICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCwKICAgICAgICAgICAgICAgIGFsbG93c0RlZmVycmVkQ2FsbHM6IGZhbHNlLAogICAgICAgICAgICAgICAgZXZlbnRUeXBlU3RyaW5nOiBldmVudFR5cGVTdHJpbmcsCiAgICAgICAgICAgICAgICBjYWxsYmFja2Z1bmM6IGNhbGxiYWNrZnVuYywKICAgICAgICAgICAgICAgIGhhbmRsZXJGdW5jOiBoYW5kbGVyRnVuYywKICAgICAgICAgICAgICAgIHVzZUNhcHR1cmU6IHVzZUNhcHR1cmUKICAgICAgICAgICAgfTsKICAgICAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJPclJlbW92ZUhhbmRsZXIoZXZlbnRIYW5kbGVyKQogICAgICAgIH0pLAogICAgICAgIHJlc2l6ZUNhbnZhc0ZvckZ1bGxzY3JlZW46IChmdW5jdGlvbih0YXJnZXQsIHN0cmF0ZWd5KSB7CiAgICAgICAgICAgIHZhciByZXN0b3JlT2xkU3R5bGUgPSBfX3JlZ2lzdGVyUmVzdG9yZU9sZFN0eWxlKHRhcmdldCk7CiAgICAgICAgICAgIHZhciBjc3NXaWR0aCA9IHN0cmF0ZWd5LnNvZnRGdWxsc2NyZWVuID8gd2luZG93LmlubmVyV2lkdGggOiBzY3JlZW4ud2lkdGg7CiAgICAgICAgICAgIHZhciBjc3NIZWlnaHQgPSBzdHJhdGVneS5zb2Z0RnVsbHNjcmVlbiA/IHdpbmRvdy5pbm5lckhlaWdodCA6IHNjcmVlbi5oZWlnaHQ7CiAgICAgICAgICAgIHZhciByZWN0ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgICAgICB2YXIgd2luZG93ZWRDc3NXaWR0aCA9IHJlY3QucmlnaHQgLSByZWN0LmxlZnQ7CiAgICAgICAgICAgIHZhciB3aW5kb3dlZENzc0hlaWdodCA9IHJlY3QuYm90dG9tIC0gcmVjdC50b3A7CiAgICAgICAgICAgIHZhciB3aW5kb3dlZFJ0dFdpZHRoID0gdGFyZ2V0LndpZHRoOwogICAgICAgICAgICB2YXIgd2luZG93ZWRSdHRIZWlnaHQgPSB0YXJnZXQuaGVpZ2h0OwogICAgICAgICAgICBpZiAoc3RyYXRlZ3kuc2NhbGVNb2RlID09IDMpIHsKICAgICAgICAgICAgICAgIF9fc2V0TGV0dGVyYm94KHRhcmdldCwgKGNzc0hlaWdodCAtIHdpbmRvd2VkQ3NzSGVpZ2h0KSAvIDIsIChjc3NXaWR0aCAtIHdpbmRvd2VkQ3NzV2lkdGgpIC8gMik7CiAgICAgICAgICAgICAgICBjc3NXaWR0aCA9IHdpbmRvd2VkQ3NzV2lkdGg7CiAgICAgICAgICAgICAgICBjc3NIZWlnaHQgPSB3aW5kb3dlZENzc0hlaWdodAogICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmF0ZWd5LnNjYWxlTW9kZSA9PSAyKSB7CiAgICAgICAgICAgICAgICBpZiAoY3NzV2lkdGggKiB3aW5kb3dlZFJ0dEhlaWdodCA8IHdpbmRvd2VkUnR0V2lkdGggKiBjc3NIZWlnaHQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzaXJlZENzc0hlaWdodCA9IHdpbmRvd2VkUnR0SGVpZ2h0ICogY3NzV2lkdGggLyB3aW5kb3dlZFJ0dFdpZHRoOwogICAgICAgICAgICAgICAgICAgIF9fc2V0TGV0dGVyYm94KHRhcmdldCwgKGNzc0hlaWdodCAtIGRlc2lyZWRDc3NIZWlnaHQpIC8gMiwgMCk7CiAgICAgICAgICAgICAgICAgICAgY3NzSGVpZ2h0ID0gZGVzaXJlZENzc0hlaWdodAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzaXJlZENzc1dpZHRoID0gd2luZG93ZWRSdHRXaWR0aCAqIGNzc0hlaWdodCAvIHdpbmRvd2VkUnR0SGVpZ2h0OwogICAgICAgICAgICAgICAgICAgIF9fc2V0TGV0dGVyYm94KHRhcmdldCwgMCwgKGNzc1dpZHRoIC0gZGVzaXJlZENzc1dpZHRoKSAvIDIpOwogICAgICAgICAgICAgICAgICAgIGNzc1dpZHRoID0gZGVzaXJlZENzc1dpZHRoCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCF0YXJnZXQuc3R5bGUuYmFja2dyb3VuZENvbG9yKSB0YXJnZXQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gImJsYWNrIjsKICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xvcikgZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiYmxhY2siOwogICAgICAgICAgICB0YXJnZXQuc3R5bGUud2lkdGggPSBjc3NXaWR0aCArICJweCI7CiAgICAgICAgICAgIHRhcmdldC5zdHlsZS5oZWlnaHQgPSBjc3NIZWlnaHQgKyAicHgiOwogICAgICAgICAgICBpZiAoc3RyYXRlZ3kuZmlsdGVyaW5nTW9kZSA9PSAxKSB7CiAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuaW1hZ2VSZW5kZXJpbmcgPSAib3B0aW1pemVTcGVlZCI7CiAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuaW1hZ2VSZW5kZXJpbmcgPSAiLW1vei1jcmlzcC1lZGdlcyI7CiAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuaW1hZ2VSZW5kZXJpbmcgPSAiLW8tY3Jpc3AtZWRnZXMiOwogICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmltYWdlUmVuZGVyaW5nID0gIi13ZWJraXQtb3B0aW1pemUtY29udHJhc3QiOwogICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmltYWdlUmVuZGVyaW5nID0gIm9wdGltaXplLWNvbnRyYXN0IjsKICAgICAgICAgICAgICAgIHRhcmdldC5zdHlsZS5pbWFnZVJlbmRlcmluZyA9ICJjcmlzcC1lZGdlcyI7CiAgICAgICAgICAgICAgICB0YXJnZXQuc3R5bGUuaW1hZ2VSZW5kZXJpbmcgPSAicGl4ZWxhdGVkIgogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBkcGlTY2FsZSA9IHN0cmF0ZWd5LmNhbnZhc1Jlc29sdXRpb25TY2FsZU1vZGUgPT0gMiA/IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIDogMTsKICAgICAgICAgICAgaWYgKHN0cmF0ZWd5LmNhbnZhc1Jlc29sdXRpb25TY2FsZU1vZGUgIT0gMCkgewogICAgICAgICAgICAgICAgdGFyZ2V0LndpZHRoID0gY3NzV2lkdGggKiBkcGlTY2FsZTsKICAgICAgICAgICAgICAgIHRhcmdldC5oZWlnaHQgPSBjc3NIZWlnaHQgKiBkcGlTY2FsZTsKICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuR0xjdHhPYmplY3QpIHRhcmdldC5HTGN0eE9iamVjdC5HTGN0eC52aWV3cG9ydCgwLCAwLCB0YXJnZXQud2lkdGgsIHRhcmdldC5oZWlnaHQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJlc3RvcmVPbGRTdHlsZQogICAgICAgIH0pLAogICAgICAgIHJlcXVlc3RGdWxsc2NyZWVuOiAoZnVuY3Rpb24odGFyZ2V0LCBzdHJhdGVneSkgewogICAgICAgICAgICBpZiAoc3RyYXRlZ3kuc2NhbGVNb2RlICE9IDAgfHwgc3RyYXRlZ3kuY2FudmFzUmVzb2x1dGlvblNjYWxlTW9kZSAhPSAwKSB7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5yZXNpemVDYW52YXNGb3JGdWxsc2NyZWVuKHRhcmdldCwgc3RyYXRlZ3kpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHRhcmdldC5yZXF1ZXN0RnVsbHNjcmVlbikgewogICAgICAgICAgICAgICAgdGFyZ2V0LnJlcXVlc3RGdWxsc2NyZWVuKCkKICAgICAgICAgICAgfSBlbHNlIGlmICh0YXJnZXQubXNSZXF1ZXN0RnVsbHNjcmVlbikgewogICAgICAgICAgICAgICAgdGFyZ2V0Lm1zUmVxdWVzdEZ1bGxzY3JlZW4oKQogICAgICAgICAgICB9IGVsc2UgaWYgKHRhcmdldC5tb3pSZXF1ZXN0RnVsbFNjcmVlbikgewogICAgICAgICAgICAgICAgdGFyZ2V0Lm1velJlcXVlc3RGdWxsU2NyZWVuKCkKICAgICAgICAgICAgfSBlbHNlIGlmICh0YXJnZXQubW96UmVxdWVzdEZ1bGxzY3JlZW4pIHsKICAgICAgICAgICAgICAgIHRhcmdldC5tb3pSZXF1ZXN0RnVsbHNjcmVlbigpCiAgICAgICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0LndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKSB7CiAgICAgICAgICAgICAgICB0YXJnZXQud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oRWxlbWVudC5BTExPV19LRVlCT0FSRF9JTlBVVCkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgSlNFdmVudHMuZnVsbHNjcmVlbkVuYWJsZWQoKSA9PT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTEKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0zCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHN0cmF0ZWd5LmNhbnZhc1Jlc2l6ZWRDYWxsYmFjaykgewogICAgICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShzdHJhdGVneS5jYW52YXNSZXNpemVkQ2FsbGJhY2ssIDM3LCAwLCBzdHJhdGVneS5jYW52YXNSZXNpemVkQ2FsbGJhY2tVc2VyRGF0YSkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0pLAogICAgICAgIGZpbGxQb2ludGVybG9ja0NoYW5nZUV2ZW50RGF0YTogKGZ1bmN0aW9uKGV2ZW50U3RydWN0LCBlKSB7CiAgICAgICAgICAgIHZhciBwb2ludGVyTG9ja0VsZW1lbnQgPSBkb2N1bWVudC5wb2ludGVyTG9ja0VsZW1lbnQgfHwgZG9jdW1lbnQubW96UG9pbnRlckxvY2tFbGVtZW50IHx8IGRvY3VtZW50LndlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCB8fCBkb2N1bWVudC5tc1BvaW50ZXJMb2NrRWxlbWVudDsKICAgICAgICAgICAgdmFyIGlzUG9pbnRlcmxvY2tlZCA9ICEhcG9pbnRlckxvY2tFbGVtZW50OwogICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgPj4gMl0gPSBpc1BvaW50ZXJsb2NrZWQ7CiAgICAgICAgICAgIHZhciBub2RlTmFtZSA9IEpTRXZlbnRzLmdldE5vZGVOYW1lRm9yVGFyZ2V0KHBvaW50ZXJMb2NrRWxlbWVudCk7CiAgICAgICAgICAgIHZhciBpZCA9IHBvaW50ZXJMb2NrRWxlbWVudCAmJiBwb2ludGVyTG9ja0VsZW1lbnQuaWQgPyBwb2ludGVyTG9ja0VsZW1lbnQuaWQgOiAiIjsKICAgICAgICAgICAgc3RyaW5nVG9VVEY4KG5vZGVOYW1lLCBldmVudFN0cnVjdCArIDQsIDEyOCk7CiAgICAgICAgICAgIHN0cmluZ1RvVVRGOChpZCwgZXZlbnRTdHJ1Y3QgKyAxMzIsIDEyOCkKICAgICAgICB9KSwKICAgICAgICByZWdpc3RlclBvaW50ZXJsb2NrQ2hhbmdlRXZlbnRDYWxsYmFjazogKGZ1bmN0aW9uKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIGV2ZW50VHlwZVN0cmluZykgewogICAgICAgICAgICBpZiAoIUpTRXZlbnRzLnBvaW50ZXJsb2NrQ2hhbmdlRXZlbnQpIHsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLnBvaW50ZXJsb2NrQ2hhbmdlRXZlbnQgPSBfbWFsbG9jKDI2MCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIXRhcmdldCkgewogICAgICAgICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRhcmdldCA9IEpTRXZlbnRzLmZpbmRFdmVudFRhcmdldCh0YXJnZXQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGhhbmRsZXJGdW5jID0gKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IGV2ZW50IHx8IHdpbmRvdy5ldmVudDsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLmZpbGxQb2ludGVybG9ja0NoYW5nZUV2ZW50RGF0YShKU0V2ZW50cy5wb2ludGVybG9ja0NoYW5nZUV2ZW50LCBlKTsKICAgICAgICAgICAgICAgIHZhciBzaG91bGRDYW5jZWwgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIEpTRXZlbnRzLnBvaW50ZXJsb2NrQ2hhbmdlRXZlbnQsIHVzZXJEYXRhKTsKICAgICAgICAgICAgICAgIGlmIChzaG91bGRDYW5jZWwpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB7CiAgICAgICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCwKICAgICAgICAgICAgICAgIGFsbG93c0RlZmVycmVkQ2FsbHM6IGZhbHNlLAogICAgICAgICAgICAgICAgZXZlbnRUeXBlU3RyaW5nOiBldmVudFR5cGVTdHJpbmcsCiAgICAgICAgICAgICAgICBjYWxsYmFja2Z1bmM6IGNhbGxiYWNrZnVuYywKICAgICAgICAgICAgICAgIGhhbmRsZXJGdW5jOiBoYW5kbGVyRnVuYywKICAgICAgICAgICAgICAgIHVzZUNhcHR1cmU6IHVzZUNhcHR1cmUKICAgICAgICAgICAgfTsKICAgICAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJPclJlbW92ZUhhbmRsZXIoZXZlbnRIYW5kbGVyKQogICAgICAgIH0pLAogICAgICAgIHJlZ2lzdGVyUG9pbnRlcmxvY2tFcnJvckV2ZW50Q2FsbGJhY2s6IChmdW5jdGlvbih0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCBldmVudFR5cGVTdHJpbmcpIHsKICAgICAgICAgICAgaWYgKCF0YXJnZXQpIHsKICAgICAgICAgICAgICAgIHRhcmdldCA9IGRvY3VtZW50CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0YXJnZXQgPSBKU0V2ZW50cy5maW5kRXZlbnRUYXJnZXQodGFyZ2V0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBoYW5kbGVyRnVuYyA9IChmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7CiAgICAgICAgICAgICAgICB2YXIgc2hvdWxkQ2FuY2VsID0gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCAwLCB1c2VyRGF0YSk7CiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQ2FuY2VsKSB7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgZXZlbnRIYW5kbGVyID0gewogICAgICAgICAgICAgICAgdGFyZ2V0OiB0YXJnZXQsCiAgICAgICAgICAgICAgICBhbGxvd3NEZWZlcnJlZENhbGxzOiBmYWxzZSwKICAgICAgICAgICAgICAgIGV2ZW50VHlwZVN0cmluZzogZXZlbnRUeXBlU3RyaW5nLAogICAgICAgICAgICAgICAgY2FsbGJhY2tmdW5jOiBjYWxsYmFja2Z1bmMsCiAgICAgICAgICAgICAgICBoYW5kbGVyRnVuYzogaGFuZGxlckZ1bmMsCiAgICAgICAgICAgICAgICB1c2VDYXB0dXJlOiB1c2VDYXB0dXJlCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyT3JSZW1vdmVIYW5kbGVyKGV2ZW50SGFuZGxlcikKICAgICAgICB9KSwKICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s6IChmdW5jdGlvbih0YXJnZXQpIHsKICAgICAgICAgICAgaWYgKHRhcmdldC5yZXF1ZXN0UG9pbnRlckxvY2spIHsKICAgICAgICAgICAgICAgIHRhcmdldC5yZXF1ZXN0UG9pbnRlckxvY2soKQogICAgICAgICAgICB9IGVsc2UgaWYgKHRhcmdldC5tb3pSZXF1ZXN0UG9pbnRlckxvY2spIHsKICAgICAgICAgICAgICAgIHRhcmdldC5tb3pSZXF1ZXN0UG9pbnRlckxvY2soKQogICAgICAgICAgICB9IGVsc2UgaWYgKHRhcmdldC53ZWJraXRSZXF1ZXN0UG9pbnRlckxvY2spIHsKICAgICAgICAgICAgICAgIHRhcmdldC53ZWJraXRSZXF1ZXN0UG9pbnRlckxvY2soKQogICAgICAgICAgICB9IGVsc2UgaWYgKHRhcmdldC5tc1JlcXVlc3RQb2ludGVyTG9jaykgewogICAgICAgICAgICAgICAgdGFyZ2V0Lm1zUmVxdWVzdFBvaW50ZXJMb2NrKCkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5ib2R5LnJlcXVlc3RQb2ludGVyTG9jayB8fCBkb2N1bWVudC5ib2R5Lm1velJlcXVlc3RQb2ludGVyTG9jayB8fCBkb2N1bWVudC5ib2R5LndlYmtpdFJlcXVlc3RQb2ludGVyTG9jayB8fCBkb2N1bWVudC5ib2R5Lm1zUmVxdWVzdFBvaW50ZXJMb2NrKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0zCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAtMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfSksCiAgICAgICAgZmlsbFZpc2liaWxpdHlDaGFuZ2VFdmVudERhdGE6IChmdW5jdGlvbihldmVudFN0cnVjdCwgZSkgewogICAgICAgICAgICB2YXIgdmlzaWJpbGl0eVN0YXRlcyA9IFsiaGlkZGVuIiwgInZpc2libGUiLCAicHJlcmVuZGVyIiwgInVubG9hZGVkIl07CiAgICAgICAgICAgIHZhciB2aXNpYmlsaXR5U3RhdGUgPSB2aXNpYmlsaXR5U3RhdGVzLmluZGV4T2YoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlKTsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ID4+IDJdID0gZG9jdW1lbnQuaGlkZGVuOwogICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyA0ID4+IDJdID0gdmlzaWJpbGl0eVN0YXRlCiAgICAgICAgfSksCiAgICAgICAgcmVnaXN0ZXJWaXNpYmlsaXR5Q2hhbmdlRXZlbnRDYWxsYmFjazogKGZ1bmN0aW9uKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIGV2ZW50VHlwZVN0cmluZykgewogICAgICAgICAgICBpZiAoIUpTRXZlbnRzLnZpc2liaWxpdHlDaGFuZ2VFdmVudCkgewogICAgICAgICAgICAgICAgSlNFdmVudHMudmlzaWJpbGl0eUNoYW5nZUV2ZW50ID0gX21hbGxvYyg4KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghdGFyZ2V0KSB7CiAgICAgICAgICAgICAgICB0YXJnZXQgPSBkb2N1bWVudAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGFyZ2V0ID0gSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCkKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgaGFuZGxlckZ1bmMgPSAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gZXZlbnQgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgICAgSlNFdmVudHMuZmlsbFZpc2liaWxpdHlDaGFuZ2VFdmVudERhdGEoSlNFdmVudHMudmlzaWJpbGl0eUNoYW5nZUV2ZW50LCBlKTsKICAgICAgICAgICAgICAgIHZhciBzaG91bGRDYW5jZWwgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIEpTRXZlbnRzLnZpc2liaWxpdHlDaGFuZ2VFdmVudCwgdXNlckRhdGEpOwogICAgICAgICAgICAgICAgaWYgKHNob3VsZENhbmNlbCkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIGV2ZW50SGFuZGxlciA9IHsKICAgICAgICAgICAgICAgIHRhcmdldDogdGFyZ2V0LAogICAgICAgICAgICAgICAgYWxsb3dzRGVmZXJyZWRDYWxsczogZmFsc2UsCiAgICAgICAgICAgICAgICBldmVudFR5cGVTdHJpbmc6IGV2ZW50VHlwZVN0cmluZywKICAgICAgICAgICAgICAgIGNhbGxiYWNrZnVuYzogY2FsbGJhY2tmdW5jLAogICAgICAgICAgICAgICAgaGFuZGxlckZ1bmM6IGhhbmRsZXJGdW5jLAogICAgICAgICAgICAgICAgdXNlQ2FwdHVyZTogdXNlQ2FwdHVyZQogICAgICAgICAgICB9OwogICAgICAgICAgICBKU0V2ZW50cy5yZWdpc3Rlck9yUmVtb3ZlSGFuZGxlcihldmVudEhhbmRsZXIpCiAgICAgICAgfSksCiAgICAgICAgcmVnaXN0ZXJUb3VjaEV2ZW50Q2FsbGJhY2s6IChmdW5jdGlvbih0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCBldmVudFR5cGVTdHJpbmcpIHsKICAgICAgICAgICAgaWYgKCFKU0V2ZW50cy50b3VjaEV2ZW50KSB7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy50b3VjaEV2ZW50ID0gX21hbGxvYygxNjg0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRhcmdldCA9IEpTRXZlbnRzLmZpbmRFdmVudFRhcmdldCh0YXJnZXQpOwogICAgICAgICAgICB2YXIgaGFuZGxlckZ1bmMgPSAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gZXZlbnQgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgICAgdmFyIHRvdWNoZXMgPSB7fTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZS50b3VjaGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRvdWNoID0gZS50b3VjaGVzW2ldOwogICAgICAgICAgICAgICAgICAgIHRvdWNoZXNbdG91Y2guaWRlbnRpZmllcl0gPSB0b3VjaAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlLmNoYW5nZWRUb3VjaGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRvdWNoID0gZS5jaGFuZ2VkVG91Y2hlc1tpXTsKICAgICAgICAgICAgICAgICAgICB0b3VjaGVzW3RvdWNoLmlkZW50aWZpZXJdID0gdG91Y2g7CiAgICAgICAgICAgICAgICAgICAgdG91Y2guY2hhbmdlZCA9IHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZS50YXJnZXRUb3VjaGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRvdWNoID0gZS50YXJnZXRUb3VjaGVzW2ldOwogICAgICAgICAgICAgICAgICAgIHRvdWNoZXNbdG91Y2guaWRlbnRpZmllcl0ub25UYXJnZXQgPSB0cnVlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgcHRyID0gSlNFdmVudHMudG91Y2hFdmVudDsKICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgKyA0ID4+IDJdID0gZS5jdHJsS2V5OwogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDggPj4gMl0gPSBlLnNoaWZ0S2V5OwogICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDEyID4+IDJdID0gZS5hbHRLZXk7CiAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMTYgPj4gMl0gPSBlLm1ldGFLZXk7CiAgICAgICAgICAgICAgICBwdHIgKz0gMjA7CiAgICAgICAgICAgICAgICB2YXIgY2FudmFzUmVjdCA9IE1vZHVsZVsiY2FudmFzIl0gPyBNb2R1bGVbImNhbnZhcyJdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIDogdW5kZWZpbmVkOwogICAgICAgICAgICAgICAgdmFyIHRhcmdldFJlY3QgPSBKU0V2ZW50cy5nZXRCb3VuZGluZ0NsaWVudFJlY3RPclplcm9zKHRhcmdldCk7CiAgICAgICAgICAgICAgICB2YXIgbnVtVG91Y2hlcyA9IDA7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIHRvdWNoZXMpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdCA9IHRvdWNoZXNbaV07CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciA+PiAyXSA9IHQuaWRlbnRpZmllcjsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgNCA+PiAyXSA9IHQuc2NyZWVuWDsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgOCA+PiAyXSA9IHQuc2NyZWVuWTsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMTIgPj4gMl0gPSB0LmNsaWVudFg7CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDE2ID4+IDJdID0gdC5jbGllbnRZOwogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgKyAyMCA+PiAyXSA9IHQucGFnZVg7CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDI0ID4+IDJdID0gdC5wYWdlWTsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMjggPj4gMl0gPSB0LmNoYW5nZWQ7CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDMyID4+IDJdID0gdC5vblRhcmdldDsKICAgICAgICAgICAgICAgICAgICBpZiAoY2FudmFzUmVjdCkgewogICAgICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgNDQgPj4gMl0gPSB0LmNsaWVudFggLSBjYW52YXNSZWN0LmxlZnQ7CiAgICAgICAgICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgKyA0OCA+PiAyXSA9IHQuY2xpZW50WSAtIGNhbnZhc1JlY3QudG9wCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDQ0ID4+IDJdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDQ4ID4+IDJdID0gMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcHRyICsgMzYgPj4gMl0gPSB0LmNsaWVudFggLSB0YXJnZXRSZWN0LmxlZnQ7CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3B0ciArIDQwID4+IDJdID0gdC5jbGllbnRZIC0gdGFyZ2V0UmVjdC50b3A7CiAgICAgICAgICAgICAgICAgICAgcHRyICs9IDUyOwogICAgICAgICAgICAgICAgICAgIGlmICgrK251bVRvdWNoZXMgPj0gMzIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBIRUFQMzJbSlNFdmVudHMudG91Y2hFdmVudCA+PiAyXSA9IG51bVRvdWNoZXM7CiAgICAgICAgICAgICAgICB2YXIgc2hvdWxkQ2FuY2VsID0gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCBKU0V2ZW50cy50b3VjaEV2ZW50LCB1c2VyRGF0YSk7CiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQ2FuY2VsKSB7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgZXZlbnRIYW5kbGVyID0gewogICAgICAgICAgICAgICAgdGFyZ2V0OiB0YXJnZXQsCiAgICAgICAgICAgICAgICBhbGxvd3NEZWZlcnJlZENhbGxzOiBldmVudFR5cGVTdHJpbmcgPT0gInRvdWNoc3RhcnQiIHx8IGV2ZW50VHlwZVN0cmluZyA9PSAidG91Y2hlbmQiLAogICAgICAgICAgICAgICAgZXZlbnRUeXBlU3RyaW5nOiBldmVudFR5cGVTdHJpbmcsCiAgICAgICAgICAgICAgICBjYWxsYmFja2Z1bmM6IGNhbGxiYWNrZnVuYywKICAgICAgICAgICAgICAgIGhhbmRsZXJGdW5jOiBoYW5kbGVyRnVuYywKICAgICAgICAgICAgICAgIHVzZUNhcHR1cmU6IHVzZUNhcHR1cmUKICAgICAgICAgICAgfTsKICAgICAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJPclJlbW92ZUhhbmRsZXIoZXZlbnRIYW5kbGVyKQogICAgICAgIH0pLAogICAgICAgIGZpbGxHYW1lcGFkRXZlbnREYXRhOiAoZnVuY3Rpb24oZXZlbnRTdHJ1Y3QsIGUpIHsKICAgICAgICAgICAgSEVBUEY2NFtldmVudFN0cnVjdCA+PiAzXSA9IGUudGltZXN0YW1wOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGUuYXhlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgSEVBUEY2NFtldmVudFN0cnVjdCArIGkgKiA4ICsgMTYgPj4gM10gPSBlLmF4ZXNbaV0KICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGUuYnV0dG9ucy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBlLmJ1dHRvbnNbaV0gPT09ICJvYmplY3QiKSB7CiAgICAgICAgICAgICAgICAgICAgSEVBUEY2NFtldmVudFN0cnVjdCArIGkgKiA4ICsgNTI4ID4+IDNdID0gZS5idXR0b25zW2ldLnZhbHVlCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIEhFQVBGNjRbZXZlbnRTdHJ1Y3QgKyBpICogOCArIDUyOCA+PiAzXSA9IGUuYnV0dG9uc1tpXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZS5idXR0b25zLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGUuYnV0dG9uc1tpXSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyBpICogNCArIDEwNDAgPj4gMl0gPSBlLmJ1dHRvbnNbaV0ucHJlc3NlZAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyBpICogNCArIDEwNDAgPj4gMl0gPSBlLmJ1dHRvbnNbaV0gPT0gMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEhFQVAzMltldmVudFN0cnVjdCArIDEyOTYgPj4gMl0gPSBlLmNvbm5lY3RlZDsKICAgICAgICAgICAgSEVBUDMyW2V2ZW50U3RydWN0ICsgMTMwMCA+PiAyXSA9IGUuaW5kZXg7CiAgICAgICAgICAgIEhFQVAzMltldmVudFN0cnVjdCArIDggPj4gMl0gPSBlLmF4ZXMubGVuZ3RoOwogICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyAxMiA+PiAyXSA9IGUuYnV0dG9ucy5sZW5ndGg7CiAgICAgICAgICAgIHN0cmluZ1RvVVRGOChlLmlkLCBldmVudFN0cnVjdCArIDEzMDQsIDY0KTsKICAgICAgICAgICAgc3RyaW5nVG9VVEY4KGUubWFwcGluZywgZXZlbnRTdHJ1Y3QgKyAxMzY4LCA2NCkKICAgICAgICB9KSwKICAgICAgICByZWdpc3RlckdhbWVwYWRFdmVudENhbGxiYWNrOiAoZnVuY3Rpb24odGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgZXZlbnRUeXBlU3RyaW5nKSB7CiAgICAgICAgICAgIGlmICghSlNFdmVudHMuZ2FtZXBhZEV2ZW50KSB7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5nYW1lcGFkRXZlbnQgPSBfbWFsbG9jKDE0MzIpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGhhbmRsZXJGdW5jID0gKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgICB2YXIgZSA9IGV2ZW50IHx8IHdpbmRvdy5ldmVudDsKICAgICAgICAgICAgICAgIEpTRXZlbnRzLmZpbGxHYW1lcGFkRXZlbnREYXRhKEpTRXZlbnRzLmdhbWVwYWRFdmVudCwgZS5nYW1lcGFkKTsKICAgICAgICAgICAgICAgIHZhciBzaG91bGRDYW5jZWwgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIEpTRXZlbnRzLmdhbWVwYWRFdmVudCwgdXNlckRhdGEpOwogICAgICAgICAgICAgICAgaWYgKHNob3VsZENhbmNlbCkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIGV2ZW50SGFuZGxlciA9IHsKICAgICAgICAgICAgICAgIHRhcmdldDogSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCksCiAgICAgICAgICAgICAgICBhbGxvd3NEZWZlcnJlZENhbGxzOiB0cnVlLAogICAgICAgICAgICAgICAgZXZlbnRUeXBlU3RyaW5nOiBldmVudFR5cGVTdHJpbmcsCiAgICAgICAgICAgICAgICBjYWxsYmFja2Z1bmM6IGNhbGxiYWNrZnVuYywKICAgICAgICAgICAgICAgIGhhbmRsZXJGdW5jOiBoYW5kbGVyRnVuYywKICAgICAgICAgICAgICAgIHVzZUNhcHR1cmU6IHVzZUNhcHR1cmUKICAgICAgICAgICAgfTsKICAgICAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJPclJlbW92ZUhhbmRsZXIoZXZlbnRIYW5kbGVyKQogICAgICAgIH0pLAogICAgICAgIHJlZ2lzdGVyQmVmb3JlVW5sb2FkRXZlbnRDYWxsYmFjazogKGZ1bmN0aW9uKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIGV2ZW50VHlwZVN0cmluZykgewogICAgICAgICAgICB2YXIgaGFuZGxlckZ1bmMgPSAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gZXZlbnQgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgICAgdmFyIGNvbmZpcm1hdGlvbk1lc3NhZ2UgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGNhbGxiYWNrZnVuYywgZXZlbnRUeXBlSWQsIDAsIHVzZXJEYXRhKTsKICAgICAgICAgICAgICAgIGlmIChjb25maXJtYXRpb25NZXNzYWdlKSB7CiAgICAgICAgICAgICAgICAgICAgY29uZmlybWF0aW9uTWVzc2FnZSA9IFBvaW50ZXJfc3RyaW5naWZ5KGNvbmZpcm1hdGlvbk1lc3NhZ2UpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoY29uZmlybWF0aW9uTWVzc2FnZSkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICBlLnJldHVyblZhbHVlID0gY29uZmlybWF0aW9uTWVzc2FnZTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlybWF0aW9uTWVzc2FnZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIGV2ZW50SGFuZGxlciA9IHsKICAgICAgICAgICAgICAgIHRhcmdldDogSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCksCiAgICAgICAgICAgICAgICBhbGxvd3NEZWZlcnJlZENhbGxzOiBmYWxzZSwKICAgICAgICAgICAgICAgIGV2ZW50VHlwZVN0cmluZzogZXZlbnRUeXBlU3RyaW5nLAogICAgICAgICAgICAgICAgY2FsbGJhY2tmdW5jOiBjYWxsYmFja2Z1bmMsCiAgICAgICAgICAgICAgICBoYW5kbGVyRnVuYzogaGFuZGxlckZ1bmMsCiAgICAgICAgICAgICAgICB1c2VDYXB0dXJlOiB1c2VDYXB0dXJlCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyT3JSZW1vdmVIYW5kbGVyKGV2ZW50SGFuZGxlcikKICAgICAgICB9KSwKICAgICAgICBiYXR0ZXJ5OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuYmF0dGVyeSB8fCBuYXZpZ2F0b3IubW96QmF0dGVyeSB8fCBuYXZpZ2F0b3Iud2Via2l0QmF0dGVyeQogICAgICAgIH0pLAogICAgICAgIGZpbGxCYXR0ZXJ5RXZlbnREYXRhOiAoZnVuY3Rpb24oZXZlbnRTdHJ1Y3QsIGUpIHsKICAgICAgICAgICAgSEVBUEY2NFtldmVudFN0cnVjdCA+PiAzXSA9IGUuY2hhcmdpbmdUaW1lOwogICAgICAgICAgICBIRUFQRjY0W2V2ZW50U3RydWN0ICsgOCA+PiAzXSA9IGUuZGlzY2hhcmdpbmdUaW1lOwogICAgICAgICAgICBIRUFQRjY0W2V2ZW50U3RydWN0ICsgMTYgPj4gM10gPSBlLmxldmVsOwogICAgICAgICAgICBIRUFQMzJbZXZlbnRTdHJ1Y3QgKyAyNCA+PiAyXSA9IGUuY2hhcmdpbmcKICAgICAgICB9KSwKICAgICAgICByZWdpc3RlckJhdHRlcnlFdmVudENhbGxiYWNrOiAoZnVuY3Rpb24odGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgZXZlbnRUeXBlU3RyaW5nKSB7CiAgICAgICAgICAgIGlmICghSlNFdmVudHMuYmF0dGVyeUV2ZW50KSB7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5iYXR0ZXJ5RXZlbnQgPSBfbWFsbG9jKDMyKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBoYW5kbGVyRnVuYyA9IChmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICAgICAgdmFyIGUgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7CiAgICAgICAgICAgICAgICBKU0V2ZW50cy5maWxsQmF0dGVyeUV2ZW50RGF0YShKU0V2ZW50cy5iYXR0ZXJ5RXZlbnQsIEpTRXZlbnRzLmJhdHRlcnkoKSk7CiAgICAgICAgICAgICAgICB2YXIgc2hvdWxkQ2FuY2VsID0gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCBKU0V2ZW50cy5iYXR0ZXJ5RXZlbnQsIHVzZXJEYXRhKTsKICAgICAgICAgICAgICAgIGlmIChzaG91bGRDYW5jZWwpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB7CiAgICAgICAgICAgICAgICB0YXJnZXQ6IEpTRXZlbnRzLmZpbmRFdmVudFRhcmdldCh0YXJnZXQpLAogICAgICAgICAgICAgICAgYWxsb3dzRGVmZXJyZWRDYWxsczogZmFsc2UsCiAgICAgICAgICAgICAgICBldmVudFR5cGVTdHJpbmc6IGV2ZW50VHlwZVN0cmluZywKICAgICAgICAgICAgICAgIGNhbGxiYWNrZnVuYzogY2FsbGJhY2tmdW5jLAogICAgICAgICAgICAgICAgaGFuZGxlckZ1bmM6IGhhbmRsZXJGdW5jLAogICAgICAgICAgICAgICAgdXNlQ2FwdHVyZTogdXNlQ2FwdHVyZQogICAgICAgICAgICB9OwogICAgICAgICAgICBKU0V2ZW50cy5yZWdpc3Rlck9yUmVtb3ZlSGFuZGxlcihldmVudEhhbmRsZXIpCiAgICAgICAgfSksCiAgICAgICAgcmVnaXN0ZXJXZWJHbEV2ZW50Q2FsbGJhY2s6IChmdW5jdGlvbih0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIGV2ZW50VHlwZUlkLCBldmVudFR5cGVTdHJpbmcpIHsKICAgICAgICAgICAgaWYgKCF0YXJnZXQpIHsKICAgICAgICAgICAgICAgIHRhcmdldCA9IE1vZHVsZVsiY2FudmFzIl0KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgaGFuZGxlckZ1bmMgPSAoZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICAgICAgIHZhciBlID0gZXZlbnQgfHwgd2luZG93LmV2ZW50OwogICAgICAgICAgICAgICAgdmFyIHNob3VsZENhbmNlbCA9IE1vZHVsZVsiZHluQ2FsbF9paWlpIl0oY2FsbGJhY2tmdW5jLCBldmVudFR5cGVJZCwgMCwgdXNlckRhdGEpOwogICAgICAgICAgICAgICAgaWYgKHNob3VsZENhbmNlbCkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIGV2ZW50SGFuZGxlciA9IHsKICAgICAgICAgICAgICAgIHRhcmdldDogSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCksCiAgICAgICAgICAgICAgICBhbGxvd3NEZWZlcnJlZENhbGxzOiBmYWxzZSwKICAgICAgICAgICAgICAgIGV2ZW50VHlwZVN0cmluZzogZXZlbnRUeXBlU3RyaW5nLAogICAgICAgICAgICAgICAgY2FsbGJhY2tmdW5jOiBjYWxsYmFja2Z1bmMsCiAgICAgICAgICAgICAgICBoYW5kbGVyRnVuYzogaGFuZGxlckZ1bmMsCiAgICAgICAgICAgICAgICB1c2VDYXB0dXJlOiB1c2VDYXB0dXJlCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyT3JSZW1vdmVIYW5kbGVyKGV2ZW50SGFuZGxlcikKICAgICAgICB9KQogICAgfTsKICAgIHZhciBfX2N1cnJlbnRGdWxsc2NyZWVuU3RyYXRlZ3kgPSB7fTsKCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9leGl0X2Z1bGxzY3JlZW4oKSB7CiAgICAgICAgaWYgKHR5cGVvZiBKU0V2ZW50cy5mdWxsc2NyZWVuRW5hYmxlZCgpID09PSAidW5kZWZpbmVkIikgcmV0dXJuIC0xOwogICAgICAgIEpTRXZlbnRzLnJlbW92ZURlZmVycmVkQ2FsbHMoSlNFdmVudHMucmVxdWVzdEZ1bGxzY3JlZW4pOwogICAgICAgIGlmIChkb2N1bWVudC5leGl0RnVsbHNjcmVlbikgewogICAgICAgICAgICBkb2N1bWVudC5leGl0RnVsbHNjcmVlbigpCiAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5tc0V4aXRGdWxsc2NyZWVuKSB7CiAgICAgICAgICAgIGRvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW4oKQogICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubW96Q2FuY2VsRnVsbFNjcmVlbikgewogICAgICAgICAgICBkb2N1bWVudC5tb3pDYW5jZWxGdWxsU2NyZWVuKCkKICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50LndlYmtpdEV4aXRGdWxsc2NyZWVuKSB7CiAgICAgICAgICAgIGRvY3VtZW50LndlYmtpdEV4aXRGdWxsc2NyZWVuKCkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gLTEKICAgICAgICB9CiAgICAgICAgaWYgKF9fY3VycmVudEZ1bGxzY3JlZW5TdHJhdGVneS5jYW52YXNSZXNpemVkQ2FsbGJhY2spIHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShfX2N1cnJlbnRGdWxsc2NyZWVuU3RyYXRlZ3kuY2FudmFzUmVzaXplZENhbGxiYWNrLCAzNywgMCwgX19jdXJyZW50RnVsbHNjcmVlblN0cmF0ZWd5LmNhbnZhc1Jlc2l6ZWRDYWxsYmFja1VzZXJEYXRhKQogICAgICAgIH0KICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX2V4aXRfcG9pbnRlcmxvY2soKSB7CiAgICAgICAgSlNFdmVudHMucmVtb3ZlRGVmZXJyZWRDYWxscyhKU0V2ZW50cy5yZXF1ZXN0UG9pbnRlckxvY2spOwogICAgICAgIGlmIChkb2N1bWVudC5leGl0UG9pbnRlckxvY2spIHsKICAgICAgICAgICAgZG9jdW1lbnQuZXhpdFBvaW50ZXJMb2NrKCkKICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50Lm1zRXhpdFBvaW50ZXJMb2NrKSB7CiAgICAgICAgICAgIGRvY3VtZW50Lm1zRXhpdFBvaW50ZXJMb2NrKCkKICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50Lm1vekV4aXRQb2ludGVyTG9jaykgewogICAgICAgICAgICBkb2N1bWVudC5tb3pFeGl0UG9pbnRlckxvY2soKQogICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQud2Via2l0RXhpdFBvaW50ZXJMb2NrKSB7CiAgICAgICAgICAgIGRvY3VtZW50LndlYmtpdEV4aXRQb2ludGVyTG9jaygpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIC0xCiAgICAgICAgfQogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fZ2V0X2Z1bGxzY3JlZW5fc3RhdHVzKGZ1bGxzY3JlZW5TdGF0dXMpIHsKICAgICAgICBpZiAodHlwZW9mIEpTRXZlbnRzLmZ1bGxzY3JlZW5FbmFibGVkKCkgPT09ICJ1bmRlZmluZWQiKSByZXR1cm4gLTE7CiAgICAgICAgSlNFdmVudHMuZmlsbEZ1bGxzY3JlZW5DaGFuZ2VFdmVudERhdGEoZnVsbHNjcmVlblN0YXR1cyk7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfX2Vtc2NyaXB0ZW5fc2FtcGxlX2dhbWVwYWRfZGF0YSgpIHsKICAgICAgICBpZiAoIUpTRXZlbnRzLm51bUdhbWVwYWRzQ29ubmVjdGVkKSByZXR1cm47CiAgICAgICAgaWYgKEJyb3dzZXIubWFpbkxvb3AuY3VycmVudEZyYW1lTnVtYmVyICE9PSBKU0V2ZW50cy5sYXN0R2FtZXBhZFN0YXRlRnJhbWUgfHwgIUJyb3dzZXIubWFpbkxvb3AuY3VycmVudEZyYW1lTnVtYmVyKSB7CiAgICAgICAgICAgIEpTRXZlbnRzLmxhc3RHYW1lcGFkU3RhdGUgPSBuYXZpZ2F0b3IuZ2V0R2FtZXBhZHMgPyBuYXZpZ2F0b3IuZ2V0R2FtZXBhZHMoKSA6IG5hdmlnYXRvci53ZWJraXRHZXRHYW1lcGFkcyA/IG5hdmlnYXRvci53ZWJraXRHZXRHYW1lcGFkcyA6IG51bGw7CiAgICAgICAgICAgIEpTRXZlbnRzLmxhc3RHYW1lcGFkU3RhdGVGcmFtZSA9IEJyb3dzZXIubWFpbkxvb3AuY3VycmVudEZyYW1lTnVtYmVyCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX2dldF9nYW1lcGFkX3N0YXR1cyhpbmRleCwgZ2FtZXBhZFN0YXRlKSB7CiAgICAgICAgX19lbXNjcmlwdGVuX3NhbXBsZV9nYW1lcGFkX2RhdGEoKTsKICAgICAgICBpZiAoIUpTRXZlbnRzLmxhc3RHYW1lcGFkU3RhdGUpIHJldHVybiAtMTsKICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IEpTRXZlbnRzLmxhc3RHYW1lcGFkU3RhdGUubGVuZ3RoKSByZXR1cm4gLTU7CiAgICAgICAgaWYgKCFKU0V2ZW50cy5sYXN0R2FtZXBhZFN0YXRlW2luZGV4XSkgcmV0dXJuIC03OwogICAgICAgIEpTRXZlbnRzLmZpbGxHYW1lcGFkRXZlbnREYXRhKGdhbWVwYWRTdGF0ZSwgSlNFdmVudHMubGFzdEdhbWVwYWRTdGF0ZVtpbmRleF0pOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fZ2V0X21haW5fbG9vcF90aW1pbmcobW9kZSwgdmFsdWUpIHsKICAgICAgICBpZiAobW9kZSkgSEVBUDMyW21vZGUgPj4gMl0gPSBCcm93c2VyLm1haW5Mb29wLnRpbWluZ01vZGU7CiAgICAgICAgaWYgKHZhbHVlKSBIRUFQMzJbdmFsdWUgPj4gMl0gPSBCcm93c2VyLm1haW5Mb29wLnRpbWluZ1ZhbHVlCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fZ2V0X251bV9nYW1lcGFkcygpIHsKICAgICAgICBpZiAoIUpTRXZlbnRzLm51bUdhbWVwYWRzQ29ubmVjdGVkKSByZXR1cm4gMDsKICAgICAgICBfX2Vtc2NyaXB0ZW5fc2FtcGxlX2dhbWVwYWRfZGF0YSgpOwogICAgICAgIGlmICghSlNFdmVudHMubGFzdEdhbWVwYWRTdGF0ZSkgcmV0dXJuIC0xOwogICAgICAgIHJldHVybiBKU0V2ZW50cy5sYXN0R2FtZXBhZFN0YXRlLmxlbmd0aAogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX2hhc190aHJlYWRpbmdfc3VwcG9ydCgpIHsKICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX2lzX3dlYmdsX2NvbnRleHRfbG9zdCh0YXJnZXQpIHsKICAgICAgICBpZiAoIU1vZHVsZVsiY3R4Il0pIHJldHVybiB0cnVlOwogICAgICAgIHJldHVybiBNb2R1bGVbImN0eCJdLmlzQ29udGV4dExvc3QoKQogICAgfQoKICAgIGZ1bmN0aW9uIF9fcmVhbGx5TmVnYXRpdmUoeCkgewogICAgICAgIHJldHVybiB4IDwgMCB8fCB4ID09PSAwICYmIDEgLyB4ID09PSAtSW5maW5pdHkKICAgIH0KCiAgICBmdW5jdGlvbiBfX2Zvcm1hdFN0cmluZyhmb3JtYXQsIHZhcmFyZ3MpIHsKICAgICAgICBhc3NlcnQoKHZhcmFyZ3MgJiAzKSA9PT0gMCk7CiAgICAgICAgdmFyIHRleHRJbmRleCA9IGZvcm1hdDsKICAgICAgICB2YXIgYXJnSW5kZXggPSB2YXJhcmdzOwoKICAgICAgICBmdW5jdGlvbiBwcmVwVmFyYXJnKHB0ciwgdHlwZSkgewogICAgICAgICAgICBpZiAodHlwZSA9PT0gImRvdWJsZSIgfHwgdHlwZSA9PT0gImk2NCIpIHsKICAgICAgICAgICAgICAgIGlmIChwdHIgJiA3KSB7CiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KChwdHIgJiA3KSA9PT0gNCk7CiAgICAgICAgICAgICAgICAgICAgcHRyICs9IDQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGFzc2VydCgocHRyICYgMykgPT09IDApCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHB0cgogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZ2V0TmV4dEFyZyh0eXBlKSB7CiAgICAgICAgICAgIHZhciByZXQ7CiAgICAgICAgICAgIGFyZ0luZGV4ID0gcHJlcFZhcmFyZyhhcmdJbmRleCwgdHlwZSk7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAiZG91YmxlIikgewogICAgICAgICAgICAgICAgcmV0ID0gSEVBUEY2NFthcmdJbmRleCA+PiAzXTsKICAgICAgICAgICAgICAgIGFyZ0luZGV4ICs9IDgKICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09ICJpNjQiKSB7CiAgICAgICAgICAgICAgICByZXQgPSBbSEVBUDMyW2FyZ0luZGV4ID4+IDJdLCBIRUFQMzJbYXJnSW5kZXggKyA0ID4+IDJdXTsKICAgICAgICAgICAgICAgIGFyZ0luZGV4ICs9IDgKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGFzc2VydCgoYXJnSW5kZXggJiAzKSA9PT0gMCk7CiAgICAgICAgICAgICAgICB0eXBlID0gImkzMiI7CiAgICAgICAgICAgICAgICByZXQgPSBIRUFQMzJbYXJnSW5kZXggPj4gMl07CiAgICAgICAgICAgICAgICBhcmdJbmRleCArPSA0CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgIH0KICAgICAgICB2YXIgcmV0ID0gW107CiAgICAgICAgdmFyIGN1cnIsIG5leHQsIGN1cnJBcmc7CiAgICAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgICAgdmFyIHN0YXJ0VGV4dEluZGV4ID0gdGV4dEluZGV4OwogICAgICAgICAgICBjdXJyID0gSEVBUDhbdGV4dEluZGV4ID4+IDBdOwogICAgICAgICAgICBpZiAoY3VyciA9PT0gMCkgYnJlYWs7CiAgICAgICAgICAgIG5leHQgPSBIRUFQOFt0ZXh0SW5kZXggKyAxID4+IDBdOwogICAgICAgICAgICBpZiAoY3VyciA9PSAzNykgewogICAgICAgICAgICAgICAgdmFyIGZsYWdBbHdheXNTaWduZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHZhciBmbGFnTGVmdEFsaWduID0gZmFsc2U7CiAgICAgICAgICAgICAgICB2YXIgZmxhZ0FsdGVybmF0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgICB2YXIgZmxhZ1plcm9QYWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHZhciBmbGFnUGFkU2lnbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgZmxhZ3NMb29wOiB3aGlsZSAoMSkgewogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ0Fsd2F5c1NpZ25lZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0NToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdMZWZ0QWxpZ24gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFnQWx0ZXJuYXRpdmUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDg6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ1plcm9QYWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBmbGFnc0xvb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ1plcm9QYWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDMyOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ1BhZFNpZ24gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBmbGFnc0xvb3AKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7CiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IEhFQVA4W3RleHRJbmRleCArIDEgPj4gMF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciB3aWR0aCA9IDA7CiAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSA0MikgewogICAgICAgICAgICAgICAgICAgIHdpZHRoID0gZ2V0TmV4dEFyZygiaTMyIik7CiAgICAgICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7CiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IEhFQVA4W3RleHRJbmRleCArIDEgPj4gMF0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG5leHQgPj0gNDggJiYgbmV4dCA8PSA1NykgewogICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IHdpZHRoICogMTAgKyAobmV4dCAtIDQ4KTsKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBIRUFQOFt0ZXh0SW5kZXggKyAxID4+IDBdCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHByZWNpc2lvblNldCA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbiA9IC0xOwogICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gNDYpIHsKICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24gPSAwOwogICAgICAgICAgICAgICAgICAgIHByZWNpc2lvblNldCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7CiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IEhFQVA4W3RleHRJbmRleCArIDEgPj4gMF07CiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gNDIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uID0gZ2V0TmV4dEFyZygiaTMyIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRJbmRleCsrCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcmVjaXNpb25DaHIgPSBIRUFQOFt0ZXh0SW5kZXggKyAxID4+IDBdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWNpc2lvbkNociA8IDQ4IHx8IHByZWNpc2lvbkNociA+IDU3KSBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbiAqIDEwICsgKHByZWNpc2lvbkNociAtIDQ4KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRJbmRleCsrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IEhFQVA4W3RleHRJbmRleCArIDEgPj4gMF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChwcmVjaXNpb24gPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uID0gNjsKICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb25TZXQgPSBmYWxzZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGFyZ1NpemU7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJoIjoKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHROZXh0ID0gSEVBUDhbdGV4dEluZGV4ICsgMiA+PiAwXTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHROZXh0ID09IDEwNCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdTaXplID0gMQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJsIjoKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5leHROZXh0ID0gSEVBUDhbdGV4dEluZGV4ICsgMiA+PiAwXTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHROZXh0ID09IDEwOCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEluZGV4Kys7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdTaXplID0gOAogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDQKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJMIjoKICAgICAgICAgICAgICAgICAgICBjYXNlICJxIjoKICAgICAgICAgICAgICAgICAgICBjYXNlICJqIjoKICAgICAgICAgICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDg7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInoiOgogICAgICAgICAgICAgICAgICAgIGNhc2UgInQiOgogICAgICAgICAgICAgICAgICAgIGNhc2UgIkkiOgogICAgICAgICAgICAgICAgICAgICAgICBhcmdTaXplID0gNDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgYXJnU2l6ZSA9IG51bGwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChhcmdTaXplKSB0ZXh0SW5kZXgrKzsKICAgICAgICAgICAgICAgIG5leHQgPSBIRUFQOFt0ZXh0SW5kZXggKyAxID4+IDBdOwogICAgICAgICAgICAgICAgc3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiZCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiaSI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAidSI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAibyI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAieCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiWCI6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAicCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNpZ25lZCA9IG5leHQgPT0gMTAwIHx8IG5leHQgPT0gMTA1OwogICAgICAgICAgICAgICAgICAgICAgICBhcmdTaXplID0gYXJnU2l6ZSB8fCA0OwogICAgICAgICAgICAgICAgICAgICAgICBjdXJyQXJnID0gZ2V0TmV4dEFyZygiaSIgKyBhcmdTaXplICogOCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvcmlnQXJnID0gY3VyckFyZzsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdTaXplID09IDgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJBcmcgPSBtYWtlQmlnSW50KGN1cnJBcmdbMF0sIGN1cnJBcmdbMV0sIG5leHQgPT0gMTE3KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdTaXplIDw9IDQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDI1NiwgYXJnU2l6ZSkgLSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyckFyZyA9IChzaWduZWQgPyByZVNpZ24gOiB1blNpZ24pKGN1cnJBcmcgJiBsaW1pdCwgYXJnU2l6ZSAqIDgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJBYnNBcmcgPSBNYXRoLmFicyhjdXJyQXJnKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByZWZpeCA9ICIiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSAxMDAgfHwgbmV4dCA9PSAxMDUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdTaXplID09IDggJiYgdHlwZW9mIGk2NE1hdGggPT09ICJvYmplY3QiKSBhcmdUZXh0ID0gaTY0TWF0aC5zdHJpbmdpZnkob3JpZ0FyZ1swXSwgb3JpZ0FyZ1sxXSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGFyZ1RleHQgPSByZVNpZ24oY3VyckFyZywgOCAqIGFyZ1NpemUsIDEpLnRvU3RyaW5nKDEwKQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTE3KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4ICYmIHR5cGVvZiBpNjRNYXRoID09PSAib2JqZWN0IikgYXJnVGV4dCA9IGk2NE1hdGguc3RyaW5naWZ5KG9yaWdBcmdbMF0sIG9yaWdBcmdbMV0sIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBhcmdUZXh0ID0gdW5TaWduKGN1cnJBcmcsIDggKiBhcmdTaXplLCAxKS50b1N0cmluZygxMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyQXJnID0gTWF0aC5hYnMoY3VyckFyZykKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDExMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnQWx0ZXJuYXRpdmUgPyAiMCIgOiAiIikgKyBjdXJyQWJzQXJnLnRvU3RyaW5nKDgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMjAgfHwgbmV4dCA9PSA4OCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gZmxhZ0FsdGVybmF0aXZlICYmIGN1cnJBcmcgIT0gMCA/ICIweCIgOiAiIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdTaXplID09IDggJiYgdHlwZW9mIGk2NE1hdGggPT09ICJvYmplY3QiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9yaWdBcmdbMV0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChvcmlnQXJnWzFdID4+PiAwKS50b1N0cmluZygxNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsb3dlciA9IChvcmlnQXJnWzBdID4+PiAwKS50b1N0cmluZygxNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsb3dlci5sZW5ndGggPCA4KSBsb3dlciA9ICIwIiArIGxvd2VyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9IGxvd2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChvcmlnQXJnWzBdID4+PiAwKS50b1N0cmluZygxNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJBcmcgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyckFyZyA9IC1jdXJyQXJnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAoY3VyckFic0FyZyAtIDEpLnRvU3RyaW5nKDE2KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYnVmZmVyID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdUZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKCgxNSAtIHBhcnNlSW50KGFyZ1RleHRbaV0sIDE2KSkudG9TdHJpbmcoMTYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYnVmZmVyLmpvaW4oIiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChhcmdUZXh0Lmxlbmd0aCA8IGFyZ1NpemUgKiAyKSBhcmdUZXh0ID0gImYiICsgYXJnVGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFic0FyZy50b1N0cmluZygxNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDg4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gcHJlZml4LnRvVXBwZXJDYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBlckNhc2UoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTEyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyckFic0FyZyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAiKG5pbCkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCA9ICIweCI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmcoMTYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWNpc2lvblNldCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgcHJlY2lzaW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICIwIiArIGFyZ1RleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyckFyZyA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ0Fsd2F5c1NpZ25lZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCA9ICIrIiArIHByZWZpeAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmbGFnUGFkU2lnbikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCA9ICIgIiArIHByZWZpeAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdUZXh0LmNoYXJBdCgwKSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCA9ICItIiArIHByZWZpeDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0LnN1YnN0cigxKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwcmVmaXgubGVuZ3RoICsgYXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWdMZWZ0QWxpZ24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9ICIgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ1plcm9QYWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICIwIiArIGFyZ1RleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSAiICIgKyBwcmVmaXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IHByZWZpeCArIGFyZ1RleHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ1RleHQuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKGNocikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0LnB1c2goY2hyLmNoYXJDb2RlQXQoMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgY2FzZSAiZiI6CiAgICAgICAgICAgICAgICBjYXNlICJGIjoKICAgICAgICAgICAgICAgIGNhc2UgImUiOgogICAgICAgICAgICAgICAgY2FzZSAiRSI6CiAgICAgICAgICAgICAgICBjYXNlICJnIjoKICAgICAgICAgICAgICAgIGNhc2UgIkciOiB7CiAgICAgICAgICAgICAgICAgICAgY3VyckFyZyA9IGdldE5leHRBcmcoImRvdWJsZSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBhcmdUZXh0OwogICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihjdXJyQXJnKSkgewogICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gIm5hbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdaZXJvUGFkID0gZmFsc2UKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpc0Zpbml0ZShjdXJyQXJnKSkgewogICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKGN1cnJBcmcgPCAwID8gIi0iIDogIiIpICsgImluZiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdaZXJvUGFkID0gZmFsc2UKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNHZW5lcmFsID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlZmZlY3RpdmVQcmVjaXNpb24gPSBNYXRoLm1pbihwcmVjaXNpb24sIDIwKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gMTAzIHx8IG5leHQgPT0gNzEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzR2VuZXJhbCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24gPSBwcmVjaXNpb24gfHwgMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHBvbmVudCA9IHBhcnNlSW50KGN1cnJBcmcudG9FeHBvbmVudGlhbChlZmZlY3RpdmVQcmVjaXNpb24pLnNwbGl0KCJlIilbMV0sIDEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVjaXNpb24gPiBleHBvbmVudCAmJiBleHBvbmVudCA+PSAtNCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSAobmV4dCA9PSAxMDMgPyAiZiIgOiAiRiIpLmNoYXJDb2RlQXQoMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlY2lzaW9uIC09IGV4cG9uZW50ICsgMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID0gKG5leHQgPT0gMTAzID8gImUiIDogIkUiKS5jaGFyQ29kZUF0KDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbi0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZmZlY3RpdmVQcmVjaXNpb24gPSBNYXRoLm1pbihwcmVjaXNpb24sIDIwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMSB8fCBuZXh0ID09IDY5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFyZy50b0V4cG9uZW50aWFsKGVmZmVjdGl2ZVByZWNpc2lvbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1tlRV1bLStdXGQkLy50ZXN0KGFyZ1RleHQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGFyZ1RleHQuc2xpY2UoMCwgLTEpICsgIjAiICsgYXJnVGV4dC5zbGljZSgtMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IDEwMiB8fCBuZXh0ID09IDcwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFyZy50b0ZpeGVkKGVmZmVjdGl2ZVByZWNpc2lvbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyckFyZyA9PT0gMCAmJiBfX3JlYWxseU5lZ2F0aXZlKGN1cnJBcmcpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICItIiArIGFyZ1RleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFydHMgPSBhcmdUZXh0LnNwbGl0KCJlIik7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0dlbmVyYWwgJiYgIWZsYWdBbHRlcm5hdGl2ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHBhcnRzWzBdLmxlbmd0aCA+IDEgJiYgcGFydHNbMF0uaW5kZXhPZigiLiIpICE9IC0xICYmIChwYXJ0c1swXS5zbGljZSgtMSkgPT0gIjAiIHx8IHBhcnRzWzBdLnNsaWNlKC0xKSA9PSAiLiIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydHNbMF0gPSBwYXJ0c1swXS5zbGljZSgwLCAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnQWx0ZXJuYXRpdmUgJiYgYXJnVGV4dC5pbmRleE9mKCIuIikgPT0gLTEpIHBhcnRzWzBdICs9ICIuIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwcmVjaXNpb24gPiBlZmZlY3RpdmVQcmVjaXNpb24rKykgcGFydHNbMF0gKz0gIjAiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IHBhcnRzWzBdICsgKHBhcnRzLmxlbmd0aCA+IDEgPyAiZSIgKyBwYXJ0c1sxXSA6ICIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgPT0gNjkpIGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBwZXJDYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyQXJnID49IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9ICIrIiArIGFyZ1RleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmxhZ1BhZFNpZ24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gIiAiICsgYXJnVGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHdoaWxlIChhcmdUZXh0Lmxlbmd0aCA8IHdpZHRoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9ICIgIgogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkICYmIChhcmdUZXh0WzBdID09ICItIiB8fCBhcmdUZXh0WzBdID09ICIrIikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYXJnVGV4dFswXSArICIwIiArIGFyZ1RleHQuc2xpY2UoMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnWmVyb1BhZCA/ICIwIiA6ICIgIikgKyBhcmdUZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgPCA5NykgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBhcmdUZXh0LnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbihjaHIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0LnB1c2goY2hyLmNoYXJDb2RlQXQoMCkpCiAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgY2FzZSAicyI6IHsKICAgICAgICAgICAgICAgICAgICB2YXIgYXJnID0gZ2V0TmV4dEFyZygiaTgqIik7CiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ0xlbmd0aCA9IGFyZyA/IF9zdHJsZW4oYXJnKSA6ICIobnVsbCkiLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICBpZiAocHJlY2lzaW9uU2V0KSBhcmdMZW5ndGggPSBNYXRoLm1pbihhcmdMZW5ndGgsIHByZWNpc2lvbik7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFmbGFnTGVmdEFsaWduKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChhcmdMZW5ndGggPCB3aWR0aC0tKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQucHVzaCgzMikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoYXJnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnTGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVBVOFthcmcrKyA+PiAwXSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IHJldC5jb25jYXQoaW50QXJyYXlGcm9tU3RyaW5nKCIobnVsbCkiLnN1YnN0cigwLCBhcmdMZW5ndGgpLCB0cnVlKSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWdMZWZ0QWxpZ24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0aCA8IHdpZHRoLS0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgY2FzZSAiYyI6IHsKICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ0xlZnRBbGlnbikgcmV0LnB1c2goZ2V0TmV4dEFyZygiaTgiKSk7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKC0td2lkdGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoIWZsYWdMZWZ0QWxpZ24pIHJldC5wdXNoKGdldE5leHRBcmcoImk4IikpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgY2FzZSAibiI6IHsKICAgICAgICAgICAgICAgICAgICB2YXIgcHRyID0gZ2V0TmV4dEFyZygiaTMyKiIpOwogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwdHIgPj4gMl0gPSByZXQubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgY2FzZSAiJSI6IHsKICAgICAgICAgICAgICAgICAgICByZXQucHVzaChjdXJyKTsKICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gc3RhcnRUZXh0SW5kZXg7IGkgPCB0ZXh0SW5kZXggKyAyOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0LnB1c2goSEVBUDhbaSA+PiAwXSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0ZXh0SW5kZXggKz0gMgogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0LnB1c2goY3Vycik7CiAgICAgICAgICAgICAgICB0ZXh0SW5kZXggKz0gMQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXQKICAgIH0KCiAgICBmdW5jdGlvbiBfX2Vtc2NyaXB0ZW5fdHJhdmVyc2Vfc3RhY2soYXJncykgewogICAgICAgIGlmICghYXJncyB8fCAhYXJncy5jYWxsZWUgfHwgIWFyZ3MuY2FsbGVlLm5hbWUpIHsKICAgICAgICAgICAgcmV0dXJuIFtudWxsLCAiIiwgIiJdCiAgICAgICAgfQogICAgICAgIHZhciBmdW5zdHIgPSBhcmdzLmNhbGxlZS50b1N0cmluZygpOwogICAgICAgIHZhciBmdW5jbmFtZSA9IGFyZ3MuY2FsbGVlLm5hbWU7CiAgICAgICAgdmFyIHN0ciA9ICIoIjsKICAgICAgICB2YXIgZmlyc3QgPSB0cnVlOwogICAgICAgIGZvciAodmFyIGkgaW4gYXJncykgewogICAgICAgICAgICB2YXIgYSA9IGFyZ3NbaV07CiAgICAgICAgICAgIGlmICghZmlyc3QpIHsKICAgICAgICAgICAgICAgIHN0ciArPSAiLCAiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBhID09PSAibnVtYmVyIiB8fCB0eXBlb2YgYSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICAgIHN0ciArPSBhCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzdHIgKz0gIigiICsgdHlwZW9mIGEgKyAiKSIKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzdHIgKz0gIikiOwogICAgICAgIHZhciBjYWxsZXIgPSBhcmdzLmNhbGxlZS5jYWxsZXI7CiAgICAgICAgYXJncyA9IGNhbGxlciA/IGNhbGxlci5hcmd1bWVudHMgOiBbXTsKICAgICAgICBpZiAoZmlyc3QpIHN0ciA9ICIiOwogICAgICAgIHJldHVybiBbYXJncywgZnVuY25hbWUsIHN0cl0KICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9nZXRfY2FsbHN0YWNrX2pzKGZsYWdzKSB7CiAgICAgICAgdmFyIGNhbGxzdGFjayA9IGpzU3RhY2tUcmFjZSgpOwogICAgICAgIHZhciBpVGhpc0Z1bmMgPSBjYWxsc3RhY2subGFzdEluZGV4T2YoIl9lbXNjcmlwdGVuX2xvZyIpOwogICAgICAgIHZhciBpVGhpc0Z1bmMyID0gY2FsbHN0YWNrLmxhc3RJbmRleE9mKCJfZW1zY3JpcHRlbl9nZXRfY2FsbHN0YWNrIik7CiAgICAgICAgdmFyIGlOZXh0TGluZSA9IGNhbGxzdGFjay5pbmRleE9mKCJcbiIsIE1hdGgubWF4KGlUaGlzRnVuYywgaVRoaXNGdW5jMikpICsgMTsKICAgICAgICBjYWxsc3RhY2sgPSBjYWxsc3RhY2suc2xpY2UoaU5leHRMaW5lKTsKICAgICAgICBpZiAoZmxhZ3MgJiA4ICYmIHR5cGVvZiBlbXNjcmlwdGVuX3NvdXJjZV9tYXAgPT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIHdhcm5PbmNlKCdTb3VyY2UgbWFwIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUsIGVtc2NyaXB0ZW5fbG9nIHdpdGggRU1fTE9HX0NfU1RBQ0sgd2lsbCBiZSBpZ25vcmVkLiBCdWlsZCB3aXRoICItLXByZS1qcyAkRU1TQ1JJUFRFTi9zcmMvZW1zY3JpcHRlbi1zb3VyY2UtbWFwLm1pbi5qcyIgbGlua2VyIGZsYWcgdG8gYWRkIHNvdXJjZSBtYXAgbG9hZGluZyB0byBjb2RlLicpOwogICAgICAgICAgICBmbGFncyBePSA4OwogICAgICAgICAgICBmbGFncyB8PSAxNgogICAgICAgIH0KICAgICAgICB2YXIgc3RhY2tfYXJncyA9IG51bGw7CiAgICAgICAgaWYgKGZsYWdzICYgMTI4KSB7CiAgICAgICAgICAgIHN0YWNrX2FyZ3MgPSBfX2Vtc2NyaXB0ZW5fdHJhdmVyc2Vfc3RhY2soYXJndW1lbnRzKTsKICAgICAgICAgICAgd2hpbGUgKHN0YWNrX2FyZ3NbMV0uaW5kZXhPZigiX2Vtc2NyaXB0ZW5fIikgPj0gMCkgc3RhY2tfYXJncyA9IF9fZW1zY3JpcHRlbl90cmF2ZXJzZV9zdGFjayhzdGFja19hcmdzWzBdKQogICAgICAgIH0KICAgICAgICB2YXIgbGluZXMgPSBjYWxsc3RhY2suc3BsaXQoIlxuIik7CiAgICAgICAgY2FsbHN0YWNrID0gIiI7CiAgICAgICAgdmFyIG5ld0ZpcmVmb3hSZSA9IG5ldyBSZWdFeHAoIlxccyooLio/KUAoLio/KTooWzAtOV0rKTooWzAtOV0rKSIpOwogICAgICAgIHZhciBmaXJlZm94UmUgPSBuZXcgUmVnRXhwKCJcXHMqKC4qPylAKC4qKTooLiopKDooLiopKT8iKTsKICAgICAgICB2YXIgY2hyb21lUmUgPSBuZXcgUmVnRXhwKCJcXHMqYXQgKC4qPykgXFwoKC4qKTooLiopOiguKilcXCkiKTsKICAgICAgICBmb3IgKHZhciBsIGluIGxpbmVzKSB7CiAgICAgICAgICAgIHZhciBsaW5lID0gbGluZXNbbF07CiAgICAgICAgICAgIHZhciBqc1N5bWJvbE5hbWUgPSAiIjsKICAgICAgICAgICAgdmFyIGZpbGUgPSAiIjsKICAgICAgICAgICAgdmFyIGxpbmVubyA9IDA7CiAgICAgICAgICAgIHZhciBjb2x1bW4gPSAwOwogICAgICAgICAgICB2YXIgcGFydHMgPSBjaHJvbWVSZS5leGVjKGxpbmUpOwogICAgICAgICAgICBpZiAocGFydHMgJiYgcGFydHMubGVuZ3RoID09IDUpIHsKICAgICAgICAgICAgICAgIGpzU3ltYm9sTmFtZSA9IHBhcnRzWzFdOwogICAgICAgICAgICAgICAgZmlsZSA9IHBhcnRzWzJdOwogICAgICAgICAgICAgICAgbGluZW5vID0gcGFydHNbM107CiAgICAgICAgICAgICAgICBjb2x1bW4gPSBwYXJ0c1s0XQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcGFydHMgPSBuZXdGaXJlZm94UmUuZXhlYyhsaW5lKTsKICAgICAgICAgICAgICAgIGlmICghcGFydHMpIHBhcnRzID0gZmlyZWZveFJlLmV4ZWMobGluZSk7CiAgICAgICAgICAgICAgICBpZiAocGFydHMgJiYgcGFydHMubGVuZ3RoID49IDQpIHsKICAgICAgICAgICAgICAgICAgICBqc1N5bWJvbE5hbWUgPSBwYXJ0c1sxXTsKICAgICAgICAgICAgICAgICAgICBmaWxlID0gcGFydHNbMl07CiAgICAgICAgICAgICAgICAgICAgbGluZW5vID0gcGFydHNbM107CiAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gcGFydHNbNF0gfCAwCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGNhbGxzdGFjayArPSBsaW5lICsgIlxuIjsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBjU3ltYm9sTmFtZSA9IGZsYWdzICYgMzIgPyBkZW1hbmdsZShqc1N5bWJvbE5hbWUpIDoganNTeW1ib2xOYW1lOwogICAgICAgICAgICBpZiAoIWNTeW1ib2xOYW1lKSB7CiAgICAgICAgICAgICAgICBjU3ltYm9sTmFtZSA9IGpzU3ltYm9sTmFtZQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBoYXZlU291cmNlTWFwID0gZmFsc2U7CiAgICAgICAgICAgIGlmIChmbGFncyAmIDgpIHsKICAgICAgICAgICAgICAgIHZhciBvcmlnID0gZW1zY3JpcHRlbl9zb3VyY2VfbWFwLm9yaWdpbmFsUG9zaXRpb25Gb3IoewogICAgICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVubywKICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGNvbHVtbgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBoYXZlU291cmNlTWFwID0gb3JpZyAmJiBvcmlnLnNvdXJjZTsKICAgICAgICAgICAgICAgIGlmIChoYXZlU291cmNlTWFwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWdzICYgNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZy5zb3VyY2UgPSBvcmlnLnNvdXJjZS5zdWJzdHJpbmcob3JpZy5zb3VyY2UucmVwbGFjZSgvXFwvZywgIi8iKS5sYXN0SW5kZXhPZigiLyIpICsgMSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY2FsbHN0YWNrICs9ICIgICAgYXQgIiArIGNTeW1ib2xOYW1lICsgIiAoIiArIG9yaWcuc291cmNlICsgIjoiICsgb3JpZy5saW5lICsgIjoiICsgb3JpZy5jb2x1bW4gKyAiKVxuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChmbGFncyAmIDE2IHx8ICFoYXZlU291cmNlTWFwKSB7CiAgICAgICAgICAgICAgICBpZiAoZmxhZ3MgJiA2NCkgewogICAgICAgICAgICAgICAgICAgIGZpbGUgPSBmaWxlLnN1YnN0cmluZyhmaWxlLnJlcGxhY2UoL1xcL2csICIvIikubGFzdEluZGV4T2YoIi8iKSArIDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYWxsc3RhY2sgKz0gKGhhdmVTb3VyY2VNYXAgPyAiICAgICA9ICIgKyBqc1N5bWJvbE5hbWUgOiAiICAgIGF0ICIgKyBjU3ltYm9sTmFtZSkgKyAiICgiICsgZmlsZSArICI6IiArIGxpbmVubyArICI6IiArIGNvbHVtbiArICIpXG4iCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGZsYWdzICYgMTI4ICYmIHN0YWNrX2FyZ3NbMF0pIHsKICAgICAgICAgICAgICAgIGlmIChzdGFja19hcmdzWzFdID09IGpzU3ltYm9sTmFtZSAmJiBzdGFja19hcmdzWzJdLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICBjYWxsc3RhY2sgPSBjYWxsc3RhY2sucmVwbGFjZSgvXHMrJC8sICIiKTsKICAgICAgICAgICAgICAgICAgICBjYWxsc3RhY2sgKz0gIiB3aXRoIHZhbHVlczogIiArIHN0YWNrX2FyZ3NbMV0gKyBzdGFja19hcmdzWzJdICsgIlxuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc3RhY2tfYXJncyA9IF9fZW1zY3JpcHRlbl90cmF2ZXJzZV9zdGFjayhzdGFja19hcmdzWzBdKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhbGxzdGFjayA9IGNhbGxzdGFjay5yZXBsYWNlKC9ccyskLywgIiIpOwogICAgICAgIHJldHVybiBjYWxsc3RhY2sKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9sb2dfanMoZmxhZ3MsIHN0cikgewogICAgICAgIGlmIChmbGFncyAmIDI0KSB7CiAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9ccyskLywgIiIpOwogICAgICAgICAgICBzdHIgKz0gKHN0ci5sZW5ndGggPiAwID8gIlxuIiA6ICIiKSArIF9lbXNjcmlwdGVuX2dldF9jYWxsc3RhY2tfanMoZmxhZ3MpCiAgICAgICAgfQogICAgICAgIGlmIChmbGFncyAmIDEpIHsKICAgICAgICAgICAgaWYgKGZsYWdzICYgNCkgewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihzdHIpCiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmxhZ3MgJiAyKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oc3RyKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coc3RyKQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChmbGFncyAmIDYpIHsKICAgICAgICAgICAgTW9kdWxlLnByaW50RXJyKHN0cikKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBNb2R1bGUucHJpbnQoc3RyKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9sb2coZmxhZ3MsIHZhcmFyZ3MpIHsKICAgICAgICB2YXIgZm9ybWF0ID0gSEVBUDMyW3ZhcmFyZ3MgPj4gMl07CiAgICAgICAgdmFyYXJncyArPSA0OwogICAgICAgIHZhciBzdHIgPSAiIjsKICAgICAgICBpZiAoZm9ybWF0KSB7CiAgICAgICAgICAgIHZhciByZXN1bHQgPSBfX2Zvcm1hdFN0cmluZyhmb3JtYXQsIHZhcmFyZ3MpOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgc3RyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUocmVzdWx0W2ldKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIF9lbXNjcmlwdGVuX2xvZ19qcyhmbGFncywgc3RyKQogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX251bV9sb2dpY2FsX2NvcmVzKCkgewogICAgICAgIHJldHVybiAxCiAgICB9CgogICAgZnVuY3Rpb24gX19zZXRMZXR0ZXJib3goZWxlbWVudCwgdG9wQm90dG9tLCBsZWZ0UmlnaHQpIHsKICAgICAgICBpZiAoSlNFdmVudHMuaXNJbnRlcm5ldEV4cGxvcmVyKCkpIHsKICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0ID0gZWxlbWVudC5zdHlsZS5tYXJnaW5SaWdodCA9IGxlZnRSaWdodCArICJweCI7CiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUubWFyZ2luVG9wID0gZWxlbWVudC5zdHlsZS5tYXJnaW5Cb3R0b20gPSB0b3BCb3R0b20gKyAicHgiCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5wYWRkaW5nTGVmdCA9IGVsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0ID0gbGVmdFJpZ2h0ICsgInB4IjsKICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5wYWRkaW5nVG9wID0gZWxlbWVudC5zdHlsZS5wYWRkaW5nQm90dG9tID0gdG9wQm90dG9tICsgInB4IgogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9kb19yZXF1ZXN0X2Z1bGxzY3JlZW4odGFyZ2V0LCBzdHJhdGVneSkgewogICAgICAgIGlmICh0eXBlb2YgSlNFdmVudHMuZnVsbHNjcmVlbkVuYWJsZWQoKSA9PT0gInVuZGVmaW5lZCIpIHJldHVybiAtMTsKICAgICAgICBpZiAoIUpTRXZlbnRzLmZ1bGxzY3JlZW5FbmFibGVkKCkpIHJldHVybiAtMzsKICAgICAgICBpZiAoIXRhcmdldCkgdGFyZ2V0ID0gIiNjYW52YXMiOwogICAgICAgIHRhcmdldCA9IEpTRXZlbnRzLmZpbmRFdmVudFRhcmdldCh0YXJnZXQpOwogICAgICAgIGlmICghdGFyZ2V0KSByZXR1cm4gLTQ7CiAgICAgICAgaWYgKCF0YXJnZXQucmVxdWVzdEZ1bGxzY3JlZW4gJiYgIXRhcmdldC5tc1JlcXVlc3RGdWxsc2NyZWVuICYmICF0YXJnZXQubW96UmVxdWVzdEZ1bGxTY3JlZW4gJiYgIXRhcmdldC5tb3pSZXF1ZXN0RnVsbHNjcmVlbiAmJiAhdGFyZ2V0LndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKSB7CiAgICAgICAgICAgIHJldHVybiAtMwogICAgICAgIH0KICAgICAgICB2YXIgY2FuUGVyZm9ybVJlcXVlc3RzID0gSlNFdmVudHMuY2FuUGVyZm9ybUV2ZW50SGFuZGxlclJlcXVlc3RzKCk7CiAgICAgICAgaWYgKCFjYW5QZXJmb3JtUmVxdWVzdHMpIHsKICAgICAgICAgICAgaWYgKHN0cmF0ZWd5LmRlZmVyVW50aWxJbkV2ZW50SGFuZGxlcikgewogICAgICAgICAgICAgICAgSlNFdmVudHMuZGVmZXJDYWxsKEpTRXZlbnRzLnJlcXVlc3RGdWxsc2NyZWVuLCAxLCBbdGFyZ2V0LCBzdHJhdGVneV0pOwogICAgICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiAtMgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBKU0V2ZW50cy5yZXF1ZXN0RnVsbHNjcmVlbih0YXJnZXQsIHN0cmF0ZWd5KQogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3JlcXVlc3RfZnVsbHNjcmVlbih0YXJnZXQsIGRlZmVyVW50aWxJbkV2ZW50SGFuZGxlcikgewogICAgICAgIHZhciBzdHJhdGVneSA9IHt9OwogICAgICAgIHN0cmF0ZWd5LnNjYWxlTW9kZSA9IDA7CiAgICAgICAgc3RyYXRlZ3kuY2FudmFzUmVzb2x1dGlvblNjYWxlTW9kZSA9IDA7CiAgICAgICAgc3RyYXRlZ3kuZmlsdGVyaW5nTW9kZSA9IDA7CiAgICAgICAgc3RyYXRlZ3kuZGVmZXJVbnRpbEluRXZlbnRIYW5kbGVyID0gZGVmZXJVbnRpbEluRXZlbnRIYW5kbGVyOwogICAgICAgIHJldHVybiBfZW1zY3JpcHRlbl9kb19yZXF1ZXN0X2Z1bGxzY3JlZW4odGFyZ2V0LCBzdHJhdGVneSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9yZXF1ZXN0X3BvaW50ZXJsb2NrKHRhcmdldCwgZGVmZXJVbnRpbEluRXZlbnRIYW5kbGVyKSB7CiAgICAgICAgaWYgKCF0YXJnZXQpIHRhcmdldCA9ICIjY2FudmFzIjsKICAgICAgICB0YXJnZXQgPSBKU0V2ZW50cy5maW5kRXZlbnRUYXJnZXQodGFyZ2V0KTsKICAgICAgICBpZiAoIXRhcmdldCkgcmV0dXJuIC00OwogICAgICAgIGlmICghdGFyZ2V0LnJlcXVlc3RQb2ludGVyTG9jayAmJiAhdGFyZ2V0Lm1velJlcXVlc3RQb2ludGVyTG9jayAmJiAhdGFyZ2V0LndlYmtpdFJlcXVlc3RQb2ludGVyTG9jayAmJiAhdGFyZ2V0Lm1zUmVxdWVzdFBvaW50ZXJMb2NrKSB7CiAgICAgICAgICAgIHJldHVybiAtMQogICAgICAgIH0KICAgICAgICB2YXIgY2FuUGVyZm9ybVJlcXVlc3RzID0gSlNFdmVudHMuY2FuUGVyZm9ybUV2ZW50SGFuZGxlclJlcXVlc3RzKCk7CiAgICAgICAgaWYgKCFjYW5QZXJmb3JtUmVxdWVzdHMpIHsKICAgICAgICAgICAgaWYgKGRlZmVyVW50aWxJbkV2ZW50SGFuZGxlcikgewogICAgICAgICAgICAgICAgSlNFdmVudHMuZGVmZXJDYWxsKEpTRXZlbnRzLnJlcXVlc3RQb2ludGVyTG9jaywgMiwgW3RhcmdldF0pOwogICAgICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiAtMgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBKU0V2ZW50cy5yZXF1ZXN0UG9pbnRlckxvY2sodGFyZ2V0KQogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3NldF9ibHVyX2NhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYykgewogICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyRm9jdXNFdmVudENhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgMTIsICJibHVyIik7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9zZXRfY2FudmFzX3NpemUod2lkdGgsIGhlaWdodCkgewogICAgICAgIEJyb3dzZXIuc2V0Q2FudmFzU2l6ZSh3aWR0aCwgaGVpZ2h0KQogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3NldF9kZXZpY2Vtb3Rpb25fY2FsbGJhY2sodXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYykgewogICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyRGV2aWNlTW90aW9uRXZlbnRDYWxsYmFjayh3aW5kb3csIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIDE3LCAiZGV2aWNlbW90aW9uIik7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9zZXRfZGV2aWNlb3JpZW50YXRpb25fY2FsbGJhY2sodXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYykgewogICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyRGV2aWNlT3JpZW50YXRpb25FdmVudENhbGxiYWNrKHdpbmRvdywgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgMTYsICJkZXZpY2VvcmllbnRhdGlvbiIpOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fc2V0X2ZvY3VzX2NhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYykgewogICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyRm9jdXNFdmVudENhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgMTMsICJmb2N1cyIpOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fc2V0X2Z1bGxzY3JlZW5jaGFuZ2VfY2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jKSB7CiAgICAgICAgaWYgKHR5cGVvZiBKU0V2ZW50cy5mdWxsc2NyZWVuRW5hYmxlZCgpID09PSAidW5kZWZpbmVkIikgcmV0dXJuIC0xOwogICAgICAgIGlmICghdGFyZ2V0KSB0YXJnZXQgPSBkb2N1bWVudDsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGFyZ2V0ID0gSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCk7CiAgICAgICAgICAgIGlmICghdGFyZ2V0KSByZXR1cm4gLTQKICAgICAgICB9CiAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJGdWxsc2NyZWVuQ2hhbmdlRXZlbnRDYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIDE5LCAiZnVsbHNjcmVlbmNoYW5nZSIpOwogICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyRnVsbHNjcmVlbkNoYW5nZUV2ZW50Q2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCAxOSwgIm1vemZ1bGxzY3JlZW5jaGFuZ2UiKTsKICAgICAgICBKU0V2ZW50cy5yZWdpc3RlckZ1bGxzY3JlZW5DaGFuZ2VFdmVudENhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgMTksICJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIik7CiAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJGdWxsc2NyZWVuQ2hhbmdlRXZlbnRDYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIDE5LCAibXNmdWxsc2NyZWVuY2hhbmdlIik7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9zZXRfa2V5ZG93bl9jYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMpIHsKICAgICAgICBKU0V2ZW50cy5yZWdpc3RlcktleUV2ZW50Q2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCAyLCAia2V5ZG93biIpOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fc2V0X2tleXByZXNzX2NhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYykgewogICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyS2V5RXZlbnRDYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIDEsICJrZXlwcmVzcyIpOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fc2V0X2tleXVwX2NhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYykgewogICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyS2V5RXZlbnRDYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIDMsICJrZXl1cCIpOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fc2V0X21vdXNlZG93bl9jYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMpIHsKICAgICAgICBKU0V2ZW50cy5yZWdpc3Rlck1vdXNlRXZlbnRDYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIDUsICJtb3VzZWRvd24iKTsKICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3NldF9tb3VzZW1vdmVfY2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jKSB7CiAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJNb3VzZUV2ZW50Q2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCA4LCAibW91c2Vtb3ZlIik7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9zZXRfbW91c2V1cF9jYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMpIHsKICAgICAgICBKU0V2ZW50cy5yZWdpc3Rlck1vdXNlRXZlbnRDYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIDYsICJtb3VzZXVwIik7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9zZXRfdG91Y2hjYW5jZWxfY2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jKSB7CiAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJUb3VjaEV2ZW50Q2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCAyNSwgInRvdWNoY2FuY2VsIik7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9zZXRfdG91Y2hlbmRfY2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jKSB7CiAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJUb3VjaEV2ZW50Q2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCAyMywgInRvdWNoZW5kIik7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9zZXRfdG91Y2htb3ZlX2NhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYykgewogICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyVG91Y2hFdmVudENhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgMjQsICJ0b3VjaG1vdmUiKTsKICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3NldF90b3VjaHN0YXJ0X2NhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYykgewogICAgICAgIEpTRXZlbnRzLnJlZ2lzdGVyVG91Y2hFdmVudENhbGxiYWNrKHRhcmdldCwgdXNlckRhdGEsIHVzZUNhcHR1cmUsIGNhbGxiYWNrZnVuYywgMjIsICJ0b3VjaHN0YXJ0Iik7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9zZXRfd2hlZWxfY2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jKSB7CiAgICAgICAgdGFyZ2V0ID0gSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCk7CiAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXQub253aGVlbCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgSlNFdmVudHMucmVnaXN0ZXJXaGVlbEV2ZW50Q2FsbGJhY2sodGFyZ2V0LCB1c2VyRGF0YSwgdXNlQ2FwdHVyZSwgY2FsbGJhY2tmdW5jLCA5LCAid2hlZWwiKTsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0YXJnZXQub25tb3VzZXdoZWVsICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICBKU0V2ZW50cy5yZWdpc3RlcldoZWVsRXZlbnRDYWxsYmFjayh0YXJnZXQsIHVzZXJEYXRhLCB1c2VDYXB0dXJlLCBjYWxsYmFja2Z1bmMsIDksICJtb3VzZXdoZWVsIik7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIC0xCiAgICAgICAgfQogICAgfQogICAgdmFyIEdMID0gewogICAgICAgIGNvdW50ZXI6IDEsCiAgICAgICAgbGFzdEVycm9yOiAwLAogICAgICAgIGJ1ZmZlcnM6IFtdLAogICAgICAgIG1hcHBlZEJ1ZmZlcnM6IHt9LAogICAgICAgIHByb2dyYW1zOiBbXSwKICAgICAgICBmcmFtZWJ1ZmZlcnM6IFtdLAogICAgICAgIHJlbmRlcmJ1ZmZlcnM6IFtdLAogICAgICAgIHRleHR1cmVzOiBbXSwKICAgICAgICB1bmlmb3JtczogW10sCiAgICAgICAgc2hhZGVyczogW10sCiAgICAgICAgdmFvczogW10sCiAgICAgICAgY29udGV4dHM6IFtdLAogICAgICAgIGN1cnJlbnRDb250ZXh0OiBudWxsLAogICAgICAgIG9mZnNjcmVlbkNhbnZhc2VzOiB7fSwKICAgICAgICB0aW1lclF1ZXJpZXNFWFQ6IFtdLAogICAgICAgIHF1ZXJpZXM6IFtdLAogICAgICAgIHNhbXBsZXJzOiBbXSwKICAgICAgICB0cmFuc2Zvcm1GZWVkYmFja3M6IFtdLAogICAgICAgIHN5bmNzOiBbXSwKICAgICAgICBieXRlU2l6ZUJ5VHlwZVJvb3Q6IDUxMjAsCiAgICAgICAgYnl0ZVNpemVCeVR5cGU6IFsxLCAxLCAyLCAyLCA0LCA0LCA0LCAyLCAzLCA0LCA4XSwKICAgICAgICBwcm9ncmFtSW5mb3M6IHt9LAogICAgICAgIHN0cmluZ0NhY2hlOiB7fSwKICAgICAgICBzdHJpbmdpQ2FjaGU6IHt9LAogICAgICAgIHRlbXBGaXhlZExlbmd0aEFycmF5OiBbXSwKICAgICAgICBwYWNrQWxpZ25tZW50OiA0LAogICAgICAgIHVucGFja0FsaWdubWVudDogNCwKICAgICAgICBpbml0OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIEdMLm1pbmlUZW1wQnVmZmVyID0gbmV3IEZsb2F0MzJBcnJheShHTC5NSU5JX1RFTVBfQlVGRkVSX1NJWkUpOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IEdMLk1JTklfVEVNUF9CVUZGRVJfU0laRTsgaSsrKSB7CiAgICAgICAgICAgICAgICBHTC5taW5pVGVtcEJ1ZmZlclZpZXdzW2ldID0gR0wubWluaVRlbXBCdWZmZXIuc3ViYXJyYXkoMCwgaSArIDEpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAzMjsgaSsrKSB7CiAgICAgICAgICAgICAgICBHTC50ZW1wRml4ZWRMZW5ndGhBcnJheS5wdXNoKG5ldyBBcnJheShpKSkKICAgICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIHJlY29yZEVycm9yOiBmdW5jdGlvbiByZWNvcmRFcnJvcihlcnJvckNvZGUpIHsKICAgICAgICAgICAgaWYgKCFHTC5sYXN0RXJyb3IpIHsKICAgICAgICAgICAgICAgIEdMLmxhc3RFcnJvciA9IGVycm9yQ29kZQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBnZXROZXdJZDogKGZ1bmN0aW9uKHRhYmxlKSB7CiAgICAgICAgICAgIHZhciByZXQgPSBHTC5jb3VudGVyKys7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSB0YWJsZS5sZW5ndGg7IGkgPCByZXQ7IGkrKykgewogICAgICAgICAgICAgICAgdGFibGVbaV0gPSBudWxsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJldAogICAgICAgIH0pLAogICAgICAgIE1JTklfVEVNUF9CVUZGRVJfU0laRTogMjU2LAogICAgICAgIG1pbmlUZW1wQnVmZmVyOiBudWxsLAogICAgICAgIG1pbmlUZW1wQnVmZmVyVmlld3M6IFswXSwKICAgICAgICBnZXRTb3VyY2U6IChmdW5jdGlvbihzaGFkZXIsIGNvdW50LCBzdHJpbmcsIGxlbmd0aCkgewogICAgICAgICAgICB2YXIgc291cmNlID0gIiI7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICAgICAgICAgdmFyIGZyYWc7CiAgICAgICAgICAgICAgICBpZiAobGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGxlbiA9IEhFQVAzMltsZW5ndGggKyBpICogNCA+PiAyXTsKICAgICAgICAgICAgICAgICAgICBpZiAobGVuIDwgMCkgewogICAgICAgICAgICAgICAgICAgICAgICBmcmFnID0gUG9pbnRlcl9zdHJpbmdpZnkoSEVBUDMyW3N0cmluZyArIGkgKiA0ID4+IDJdKQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZyYWcgPSBQb2ludGVyX3N0cmluZ2lmeShIRUFQMzJbc3RyaW5nICsgaSAqIDQgPj4gMl0sIGxlbikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGZyYWcgPSBQb2ludGVyX3N0cmluZ2lmeShIRUFQMzJbc3RyaW5nICsgaSAqIDQgPj4gMl0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzb3VyY2UgKz0gZnJhZwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzb3VyY2UKICAgICAgICB9KSwKICAgICAgICBjcmVhdGVDb250ZXh0OiAoZnVuY3Rpb24oY2FudmFzLCB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2ViR0xDb250ZXh0QXR0cmlidXRlc1sibWFqb3JWZXJzaW9uIl0gPT09ICJ1bmRlZmluZWQiICYmIHR5cGVvZiB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzWyJtaW5vclZlcnNpb24iXSA9PT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCAhPT0gInVuZGVmaW5lZCIpIHdlYkdMQ29udGV4dEF0dHJpYnV0ZXNbIm1ham9yVmVyc2lvbiJdID0gMjsKICAgICAgICAgICAgICAgIGVsc2Ugd2ViR0xDb250ZXh0QXR0cmlidXRlc1sibWFqb3JWZXJzaW9uIl0gPSAxOwogICAgICAgICAgICAgICAgd2ViR0xDb250ZXh0QXR0cmlidXRlc1sibWlub3JWZXJzaW9uIl0gPSAwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGN0eDsKICAgICAgICAgICAgdmFyIGVycm9ySW5mbyA9ICI/IjsKCiAgICAgICAgICAgIGZ1bmN0aW9uIG9uQ29udGV4dENyZWF0aW9uRXJyb3IoZXZlbnQpIHsKICAgICAgICAgICAgICAgIGVycm9ySW5mbyA9IGV2ZW50LnN0YXR1c01lc3NhZ2UgfHwgZXJyb3JJbmZvCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yIiwgb25Db250ZXh0Q3JlYXRpb25FcnJvciwgZmFsc2UpOwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBpZiAod2ViR0xDb250ZXh0QXR0cmlidXRlc1sibWFqb3JWZXJzaW9uIl0gPT0gMSAmJiB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzWyJtaW5vclZlcnNpb24iXSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCJ3ZWJnbCIsIHdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpIHx8IGNhbnZhcy5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLCB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzKQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2ViR0xDb250ZXh0QXR0cmlidXRlc1sibWFqb3JWZXJzaW9uIl0gPT0gMiAmJiB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzWyJtaW5vclZlcnNpb24iXSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCJ3ZWJnbDIiLCB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzKQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93ICJVbnN1cHBvcnRlZCBXZWJHTCBjb250ZXh0IHZlcnNpb24gIiArIG1ham9yVmVyc2lvbiArICIuIiArIG1pbm9yVmVyc2lvbiArICIhIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICAgICAgY2FudmFzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IiLCBvbkNvbnRleHRDcmVhdGlvbkVycm9yLCBmYWxzZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghY3R4KSB0aHJvdyAiOigiCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIE1vZHVsZS5wcmludCgiQ291bGQgbm90IGNyZWF0ZSBjYW52YXM6ICIgKyBbZXJyb3JJbmZvLCBlLCBKU09OLnN0cmluZ2lmeSh3ZWJHTENvbnRleHRBdHRyaWJ1dGVzKV0pOwogICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWN0eCkgcmV0dXJuIDA7CiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gR0wucmVnaXN0ZXJDb250ZXh0KGN0eCwgd2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CiAgICAgICAgICAgIHJldHVybiBjb250ZXh0CiAgICAgICAgfSksCiAgICAgICAgcmVnaXN0ZXJDb250ZXh0OiAoZnVuY3Rpb24oY3R4LCB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgIHZhciBoYW5kbGUgPSBHTC5nZXROZXdJZChHTC5jb250ZXh0cyk7CiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gewogICAgICAgICAgICAgICAgaGFuZGxlOiBoYW5kbGUsCiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzLAogICAgICAgICAgICAgICAgdmVyc2lvbjogd2ViR0xDb250ZXh0QXR0cmlidXRlc1sibWFqb3JWZXJzaW9uIl0sCiAgICAgICAgICAgICAgICBHTGN0eDogY3R4CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBmdW5jdGlvbiBnZXRDaHJvbWVWZXJzaW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHJhdyA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0Nocm9tKGV8aXVtKVwvKFswLTldKylcLi8pOwogICAgICAgICAgICAgICAgcmV0dXJuIHJhdyA/IHBhcnNlSW50KHJhd1syXSwgMTApIDogZmFsc2UKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZXh0LnN1cHBvcnRzV2ViR0wyRW50cnlQb2ludHMgPSBjb250ZXh0LnZlcnNpb24gPj0gMiAmJiAoZ2V0Q2hyb21lVmVyc2lvbigpID09PSBmYWxzZSB8fCBnZXRDaHJvbWVWZXJzaW9uKCkgPj0gNTgpOwogICAgICAgICAgICBpZiAoY3R4LmNhbnZhcykgY3R4LmNhbnZhcy5HTGN0eE9iamVjdCA9IGNvbnRleHQ7CiAgICAgICAgICAgIEdMLmNvbnRleHRzW2hhbmRsZV0gPSBjb250ZXh0OwogICAgICAgICAgICBpZiAodHlwZW9mIHdlYkdMQ29udGV4dEF0dHJpYnV0ZXNbImVuYWJsZUV4dGVuc2lvbnNCeURlZmF1bHQiXSA9PT0gInVuZGVmaW5lZCIgfHwgd2ViR0xDb250ZXh0QXR0cmlidXRlc1siZW5hYmxlRXh0ZW5zaW9uc0J5RGVmYXVsdCJdKSB7CiAgICAgICAgICAgICAgICBHTC5pbml0RXh0ZW5zaW9ucyhjb250ZXh0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBoYW5kbGUKICAgICAgICB9KSwKICAgICAgICBtYWtlQ29udGV4dEN1cnJlbnQ6IChmdW5jdGlvbihjb250ZXh0SGFuZGxlKSB7CiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gR0wuY29udGV4dHNbY29udGV4dEhhbmRsZV07CiAgICAgICAgICAgIGlmICghY29udGV4dCkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICBHTGN0eCA9IE1vZHVsZS5jdHggPSBjb250ZXh0LkdMY3R4OwogICAgICAgICAgICBHTC5jdXJyZW50Q29udGV4dCA9IGNvbnRleHQ7CiAgICAgICAgICAgIHJldHVybiB0cnVlCiAgICAgICAgfSksCiAgICAgICAgZ2V0Q29udGV4dDogKGZ1bmN0aW9uKGNvbnRleHRIYW5kbGUpIHsKICAgICAgICAgICAgcmV0dXJuIEdMLmNvbnRleHRzW2NvbnRleHRIYW5kbGVdCiAgICAgICAgfSksCiAgICAgICAgZGVsZXRlQ29udGV4dDogKGZ1bmN0aW9uKGNvbnRleHRIYW5kbGUpIHsKICAgICAgICAgICAgaWYgKEdMLmN1cnJlbnRDb250ZXh0ID09PSBHTC5jb250ZXh0c1tjb250ZXh0SGFuZGxlXSkgR0wuY3VycmVudENvbnRleHQgPSBudWxsOwogICAgICAgICAgICBpZiAodHlwZW9mIEpTRXZlbnRzID09PSAib2JqZWN0IikgSlNFdmVudHMucmVtb3ZlQWxsSGFuZGxlcnNPblRhcmdldChHTC5jb250ZXh0c1tjb250ZXh0SGFuZGxlXS5HTGN0eC5jYW52YXMpOwogICAgICAgICAgICBpZiAoR0wuY29udGV4dHNbY29udGV4dEhhbmRsZV0gJiYgR0wuY29udGV4dHNbY29udGV4dEhhbmRsZV0uR0xjdHguY2FudmFzKSBHTC5jb250ZXh0c1tjb250ZXh0SGFuZGxlXS5HTGN0eC5jYW52YXMuR0xjdHhPYmplY3QgPSB1bmRlZmluZWQ7CiAgICAgICAgICAgIEdMLmNvbnRleHRzW2NvbnRleHRIYW5kbGVdID0gbnVsbAogICAgICAgIH0pLAogICAgICAgIGluaXRFeHRlbnNpb25zOiAoZnVuY3Rpb24oY29udGV4dCkgewogICAgICAgICAgICBpZiAoIWNvbnRleHQpIGNvbnRleHQgPSBHTC5jdXJyZW50Q29udGV4dDsKICAgICAgICAgICAgaWYgKGNvbnRleHQuaW5pdEV4dGVuc2lvbnNEb25lKSByZXR1cm47CiAgICAgICAgICAgIGNvbnRleHQuaW5pdEV4dGVuc2lvbnNEb25lID0gdHJ1ZTsKICAgICAgICAgICAgdmFyIEdMY3R4ID0gY29udGV4dC5HTGN0eDsKICAgICAgICAgICAgY29udGV4dC5tYXhWZXJ0ZXhBdHRyaWJzID0gR0xjdHguZ2V0UGFyYW1ldGVyKEdMY3R4Lk1BWF9WRVJURVhfQVRUUklCUyk7CiAgICAgICAgICAgIGlmIChjb250ZXh0LnZlcnNpb24gPCAyKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5zdGFuY2VkQXJyYXlzRXh0ID0gR0xjdHguZ2V0RXh0ZW5zaW9uKCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIik7CiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2VkQXJyYXlzRXh0KSB7CiAgICAgICAgICAgICAgICAgICAgR0xjdHhbInZlcnRleEF0dHJpYkRpdmlzb3IiXSA9IChmdW5jdGlvbihpbmRleCwgZGl2aXNvcikgewogICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZWRBcnJheXNFeHRbInZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRSJdKGluZGV4LCBkaXZpc29yKQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIEdMY3R4WyJkcmF3QXJyYXlzSW5zdGFuY2VkIl0gPSAoZnVuY3Rpb24obW9kZSwgZmlyc3QsIGNvdW50LCBwcmltY291bnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2VkQXJyYXlzRXh0WyJkcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUiXShtb2RlLCBmaXJzdCwgY291bnQsIHByaW1jb3VudCkKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBHTGN0eFsiZHJhd0VsZW1lbnRzSW5zdGFuY2VkIl0gPSAoZnVuY3Rpb24obW9kZSwgY291bnQsIHR5cGUsIGluZGljZXMsIHByaW1jb3VudCkgewogICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZWRBcnJheXNFeHRbImRyYXdFbGVtZW50c0luc3RhbmNlZEFOR0xFIl0obW9kZSwgY291bnQsIHR5cGUsIGluZGljZXMsIHByaW1jb3VudCkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHZhb0V4dCA9IEdMY3R4LmdldEV4dGVuc2lvbigiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKICAgICAgICAgICAgICAgIGlmICh2YW9FeHQpIHsKICAgICAgICAgICAgICAgICAgICBHTGN0eFsiY3JlYXRlVmVydGV4QXJyYXkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhb0V4dFsiY3JlYXRlVmVydGV4QXJyYXlPRVMiXSgpCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgR0xjdHhbImRlbGV0ZVZlcnRleEFycmF5Il0gPSAoZnVuY3Rpb24odmFvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhb0V4dFsiZGVsZXRlVmVydGV4QXJyYXlPRVMiXSh2YW8pCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgR0xjdHhbImJpbmRWZXJ0ZXhBcnJheSJdID0gKGZ1bmN0aW9uKHZhbykgewogICAgICAgICAgICAgICAgICAgICAgICB2YW9FeHRbImJpbmRWZXJ0ZXhBcnJheU9FUyJdKHZhbykKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBHTGN0eFsiaXNWZXJ0ZXhBcnJheSJdID0gKGZ1bmN0aW9uKHZhbykgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFvRXh0WyJpc1ZlcnRleEFycmF5T0VTIl0odmFvKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZHJhd0J1ZmZlcnNFeHQgPSBHTGN0eC5nZXRFeHRlbnNpb24oIldFQkdMX2RyYXdfYnVmZmVycyIpOwogICAgICAgICAgICAgICAgaWYgKGRyYXdCdWZmZXJzRXh0KSB7CiAgICAgICAgICAgICAgICAgICAgR0xjdHhbImRyYXdCdWZmZXJzIl0gPSAoZnVuY3Rpb24obiwgYnVmcykgewogICAgICAgICAgICAgICAgICAgICAgICBkcmF3QnVmZmVyc0V4dFsiZHJhd0J1ZmZlcnNXRUJHTCJdKG4sIGJ1ZnMpCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBHTGN0eC5kaXNqb2ludFRpbWVyUXVlcnlFeHQgPSBHTGN0eC5nZXRFeHRlbnNpb24oIkVYVF9kaXNqb2ludF90aW1lcl9xdWVyeSIpOwogICAgICAgICAgICB2YXIgYXV0b21hdGljYWxseUVuYWJsZWRFeHRlbnNpb25zID0gWyJPRVNfdGV4dHVyZV9mbG9hdCIsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiwgIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIsICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIsICJXRUJHTF9kZXB0aF90ZXh0dXJlIiwgIk9FU19lbGVtZW50X2luZGV4X3VpbnQiLCAiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiwgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiLCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiwgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiLCAiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0IiwgIldFQkdMX2NvbG9yX2J1ZmZlcl9mbG9hdCIsICJFWFRfZnJhZ19kZXB0aCIsICJFWFRfc1JHQiIsICJXRUJHTF9kcmF3X2J1ZmZlcnMiLCAiV0VCR0xfc2hhcmVkX3Jlc291cmNlcyIsICJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIiwgIkVYVF9jb2xvcl9idWZmZXJfZmxvYXQiXTsKICAgICAgICAgICAgdmFyIGV4dHMgPSBHTGN0eC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CiAgICAgICAgICAgIGlmIChleHRzICYmIGV4dHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgR0xjdHguZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpLmZvckVhY2goKGZ1bmN0aW9uKGV4dCkgewogICAgICAgICAgICAgICAgICAgIGlmIChhdXRvbWF0aWNhbGx5RW5hYmxlZEV4dGVuc2lvbnMuaW5kZXhPZihleHQpICE9IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEdMY3R4LmdldEV4dGVuc2lvbihleHQpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkpCiAgICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBwb3B1bGF0ZVVuaWZvcm1UYWJsZTogKGZ1bmN0aW9uKHByb2dyYW0pIHsKICAgICAgICAgICAgdmFyIHAgPSBHTC5wcm9ncmFtc1twcm9ncmFtXTsKICAgICAgICAgICAgR0wucHJvZ3JhbUluZm9zW3Byb2dyYW1dID0gewogICAgICAgICAgICAgICAgdW5pZm9ybXM6IHt9LAogICAgICAgICAgICAgICAgbWF4VW5pZm9ybUxlbmd0aDogMCwKICAgICAgICAgICAgICAgIG1heEF0dHJpYnV0ZUxlbmd0aDogLTEsCiAgICAgICAgICAgICAgICBtYXhVbmlmb3JtQmxvY2tOYW1lTGVuZ3RoOiAtMQogICAgICAgICAgICB9OwogICAgICAgICAgICB2YXIgcHRhYmxlID0gR0wucHJvZ3JhbUluZm9zW3Byb2dyYW1dOwogICAgICAgICAgICB2YXIgdXRhYmxlID0gcHRhYmxlLnVuaWZvcm1zOwogICAgICAgICAgICB2YXIgbnVtVW5pZm9ybXMgPSBHTGN0eC5nZXRQcm9ncmFtUGFyYW1ldGVyKHAsIEdMY3R4LkFDVElWRV9VTklGT1JNUyk7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtVW5pZm9ybXM7ICsraSkgewogICAgICAgICAgICAgICAgdmFyIHUgPSBHTGN0eC5nZXRBY3RpdmVVbmlmb3JtKHAsIGkpOwogICAgICAgICAgICAgICAgdmFyIG5hbWUgPSB1Lm5hbWU7CiAgICAgICAgICAgICAgICBwdGFibGUubWF4VW5pZm9ybUxlbmd0aCA9IE1hdGgubWF4KHB0YWJsZS5tYXhVbmlmb3JtTGVuZ3RoLCBuYW1lLmxlbmd0aCArIDEpOwogICAgICAgICAgICAgICAgaWYgKG5hbWUuaW5kZXhPZigiXSIsIG5hbWUubGVuZ3RoIC0gMSkgIT09IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGxzID0gbmFtZS5sYXN0SW5kZXhPZigiWyIpOwogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnNsaWNlKDAsIGxzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGxvYyA9IEdMY3R4LmdldFVuaWZvcm1Mb2NhdGlvbihwLCBuYW1lKTsKICAgICAgICAgICAgICAgIGlmIChsb2MgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHZhciBpZCA9IEdMLmdldE5ld0lkKEdMLnVuaWZvcm1zKTsKICAgICAgICAgICAgICAgICAgICB1dGFibGVbbmFtZV0gPSBbdS5zaXplLCBpZF07CiAgICAgICAgICAgICAgICAgICAgR0wudW5pZm9ybXNbaWRdID0gbG9jOwogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAxOyBqIDwgdS5zaXplOyArK2opIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG4gPSBuYW1lICsgIlsiICsgaiArICJdIjsKICAgICAgICAgICAgICAgICAgICAgICAgbG9jID0gR0xjdHguZ2V0VW5pZm9ybUxvY2F0aW9uKHAsIG4pOwogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IEdMLmdldE5ld0lkKEdMLnVuaWZvcm1zKTsKICAgICAgICAgICAgICAgICAgICAgICAgR0wudW5pZm9ybXNbaWRdID0gbG9jCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgIH07CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fd2ViZ2xfY3JlYXRlX2NvbnRleHQodGFyZ2V0LCBhdHRyaWJ1dGVzKSB7CiAgICAgICAgdmFyIGNvbnRleHRBdHRyaWJ1dGVzID0ge307CiAgICAgICAgY29udGV4dEF0dHJpYnV0ZXNbImFscGhhIl0gPSAhIUhFQVAzMlthdHRyaWJ1dGVzID4+IDJdOwogICAgICAgIGNvbnRleHRBdHRyaWJ1dGVzWyJkZXB0aCJdID0gISFIRUFQMzJbYXR0cmlidXRlcyArIDQgPj4gMl07CiAgICAgICAgY29udGV4dEF0dHJpYnV0ZXNbInN0ZW5jaWwiXSA9ICEhSEVBUDMyW2F0dHJpYnV0ZXMgKyA4ID4+IDJdOwogICAgICAgIGNvbnRleHRBdHRyaWJ1dGVzWyJhbnRpYWxpYXMiXSA9ICEhSEVBUDMyW2F0dHJpYnV0ZXMgKyAxMiA+PiAyXTsKICAgICAgICBjb250ZXh0QXR0cmlidXRlc1sicHJlbXVsdGlwbGllZEFscGhhIl0gPSAhIUhFQVAzMlthdHRyaWJ1dGVzICsgMTYgPj4gMl07CiAgICAgICAgY29udGV4dEF0dHJpYnV0ZXNbInByZXNlcnZlRHJhd2luZ0J1ZmZlciJdID0gISFIRUFQMzJbYXR0cmlidXRlcyArIDIwID4+IDJdOwogICAgICAgIGNvbnRleHRBdHRyaWJ1dGVzWyJwcmVmZXJMb3dQb3dlclRvSGlnaFBlcmZvcm1hbmNlIl0gPSAhIUhFQVAzMlthdHRyaWJ1dGVzICsgMjQgPj4gMl07CiAgICAgICAgY29udGV4dEF0dHJpYnV0ZXNbImZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQiXSA9ICEhSEVBUDMyW2F0dHJpYnV0ZXMgKyAyOCA+PiAyXTsKICAgICAgICBjb250ZXh0QXR0cmlidXRlc1sibWFqb3JWZXJzaW9uIl0gPSBIRUFQMzJbYXR0cmlidXRlcyArIDMyID4+IDJdOwogICAgICAgIGNvbnRleHRBdHRyaWJ1dGVzWyJtaW5vclZlcnNpb24iXSA9IEhFQVAzMlthdHRyaWJ1dGVzICsgMzYgPj4gMl07CiAgICAgICAgY29udGV4dEF0dHJpYnV0ZXNbImV4cGxpY2l0U3dhcENvbnRyb2wiXSA9IEhFQVAzMlthdHRyaWJ1dGVzICsgNDQgPj4gMl07CiAgICAgICAgdGFyZ2V0ID0gUG9pbnRlcl9zdHJpbmdpZnkodGFyZ2V0KTsKICAgICAgICB2YXIgY2FudmFzOwogICAgICAgIGlmICgoIXRhcmdldCB8fCB0YXJnZXQgPT09ICIjY2FudmFzIikgJiYgTW9kdWxlWyJjYW52YXMiXSkgewogICAgICAgICAgICBjYW52YXMgPSBNb2R1bGVbImNhbnZhcyJdLmlkID8gR0wub2Zmc2NyZWVuQ2FudmFzZXNbTW9kdWxlWyJjYW52YXMiXS5pZF0gfHwgSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KE1vZHVsZVsiY2FudmFzIl0uaWQpIDogTW9kdWxlWyJjYW52YXMiXQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNhbnZhcyA9IEdMLm9mZnNjcmVlbkNhbnZhc2VzW3RhcmdldF0gfHwgSlNFdmVudHMuZmluZEV2ZW50VGFyZ2V0KHRhcmdldCkKICAgICAgICB9CiAgICAgICAgaWYgKCFjYW52YXMpIHsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9CiAgICAgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzWyJleHBsaWNpdFN3YXBDb250cm9sIl0pIHsKICAgICAgICAgICAgY29uc29sZS5lcnJvcigiZW1zY3JpcHRlbl93ZWJnbF9jcmVhdGVfY29udGV4dCBmYWlsZWQ6IGV4cGxpY2l0U3dhcENvbnRyb2wgaXMgbm90IHN1cHBvcnRlZCwgcGxlYXNlIHJlYnVpbGQgd2l0aCAtcyBPRkZTQ1JFRU5DQU5WQVNfU1VQUE9SVD0xIHRvIGVuYWJsZSB0YXJnZXRpbmcgdGhlIGV4cGVyaW1lbnRhbCBPZmZzY3JlZW5DYW52YXMgc3BlY2lmaWNhdGlvbiEiKTsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9CiAgICAgICAgdmFyIGNvbnRleHRIYW5kbGUgPSBHTC5jcmVhdGVDb250ZXh0KGNhbnZhcywgY29udGV4dEF0dHJpYnV0ZXMpOwogICAgICAgIHJldHVybiBjb250ZXh0SGFuZGxlCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fd2ViZ2xfZGVzdHJveV9jb250ZXh0KGNvbnRleHRIYW5kbGUpIHsKICAgICAgICBHTC5kZWxldGVDb250ZXh0KGNvbnRleHRIYW5kbGUpCiAgICB9CgogICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fd2ViZ2xfZW5hYmxlX2V4dGVuc2lvbihjb250ZXh0SGFuZGxlLCBleHRlbnNpb24pIHsKICAgICAgICB2YXIgY29udGV4dCA9IEdMLmdldENvbnRleHQoY29udGV4dEhhbmRsZSk7CiAgICAgICAgdmFyIGV4dFN0cmluZyA9IFBvaW50ZXJfc3RyaW5naWZ5KGV4dGVuc2lvbik7CiAgICAgICAgaWYgKGV4dFN0cmluZy5pbmRleE9mKCJHTF8iKSA9PSAwKSBleHRTdHJpbmcgPSBleHRTdHJpbmcuc3Vic3RyKDMpOwogICAgICAgIHZhciBleHQgPSBjb250ZXh0LkdMY3R4LmdldEV4dGVuc2lvbihleHRTdHJpbmcpOwogICAgICAgIHJldHVybiBleHQgPyAxIDogMAogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3dlYmdsX2dldF9jdXJyZW50X2NvbnRleHQoKSB7CiAgICAgICAgcmV0dXJuIEdMLmN1cnJlbnRDb250ZXh0ID8gR0wuY3VycmVudENvbnRleHQuaGFuZGxlIDogMAogICAgfQoKICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3dlYmdsX21ha2VfY29udGV4dF9jdXJyZW50KGNvbnRleHRIYW5kbGUpIHsKICAgICAgICB2YXIgc3VjY2VzcyA9IEdMLm1ha2VDb250ZXh0Q3VycmVudChjb250ZXh0SGFuZGxlKTsKICAgICAgICByZXR1cm4gc3VjY2VzcyA/IDAgOiAtNQogICAgfQoKICAgIGZ1bmN0aW9uIF9fZXhpdChzdGF0dXMpIHsKICAgICAgICBNb2R1bGVbImV4aXQiXShzdGF0dXMpCiAgICB9CgogICAgZnVuY3Rpb24gX2V4aXQoc3RhdHVzKSB7CiAgICAgICAgX19leGl0KHN0YXR1cykKICAgIH0KCiAgICBmdW5jdGlvbiBfZmxvY2soZmQsIG9wZXJhdGlvbikgewogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2dldGhvc3RieW5hbWUobmFtZSkgewogICAgICAgIG5hbWUgPSBQb2ludGVyX3N0cmluZ2lmeShuYW1lKTsKICAgICAgICB2YXIgcmV0ID0gX21hbGxvYygyMCk7CiAgICAgICAgdmFyIG5hbWVCdWYgPSBfbWFsbG9jKG5hbWUubGVuZ3RoICsgMSk7CiAgICAgICAgc3RyaW5nVG9VVEY4KG5hbWUsIG5hbWVCdWYsIG5hbWUubGVuZ3RoICsgMSk7CiAgICAgICAgSEVBUDMyW3JldCA+PiAyXSA9IG5hbWVCdWY7CiAgICAgICAgdmFyIGFsaWFzZXNCdWYgPSBfbWFsbG9jKDQpOwogICAgICAgIEhFQVAzMlthbGlhc2VzQnVmID4+IDJdID0gMDsKICAgICAgICBIRUFQMzJbcmV0ICsgNCA+PiAyXSA9IGFsaWFzZXNCdWY7CiAgICAgICAgdmFyIGFmaW5ldCA9IDI7CiAgICAgICAgSEVBUDMyW3JldCArIDggPj4gMl0gPSBhZmluZXQ7CiAgICAgICAgSEVBUDMyW3JldCArIDEyID4+IDJdID0gNDsKICAgICAgICB2YXIgYWRkckxpc3RCdWYgPSBfbWFsbG9jKDEyKTsKICAgICAgICBIRUFQMzJbYWRkckxpc3RCdWYgPj4gMl0gPSBhZGRyTGlzdEJ1ZiArIDg7CiAgICAgICAgSEVBUDMyW2FkZHJMaXN0QnVmICsgNCA+PiAyXSA9IDA7CiAgICAgICAgSEVBUDMyW2FkZHJMaXN0QnVmICsgOCA+PiAyXSA9IF9faW5ldF9wdG9uNF9yYXcoRE5TLmxvb2t1cF9uYW1lKG5hbWUpKTsKICAgICAgICBIRUFQMzJbcmV0ICsgMTYgPj4gMl0gPSBhZGRyTGlzdEJ1ZjsKICAgICAgICByZXR1cm4gcmV0CiAgICB9CgogICAgZnVuY3Rpb24gX2dldGhvc3RieWFkZHIoYWRkciwgYWRkcmxlbiwgdHlwZSkgewogICAgICAgIGlmICh0eXBlICE9PSAyKSB7CiAgICAgICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVBRk5PU1VQUE9SVCk7CiAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgfQogICAgICAgIGFkZHIgPSBIRUFQMzJbYWRkciA+PiAyXTsKICAgICAgICB2YXIgaG9zdCA9IF9faW5ldF9udG9wNF9yYXcoYWRkcik7CiAgICAgICAgdmFyIGxvb2t1cCA9IEROUy5sb29rdXBfYWRkcihob3N0KTsKICAgICAgICBpZiAobG9va3VwKSB7CiAgICAgICAgICAgIGhvc3QgPSBsb29rdXAKICAgICAgICB9CiAgICAgICAgdmFyIGhvc3RwID0gYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5nKGhvc3QpLCAiaTgiLCBBTExPQ19TVEFDSyk7CiAgICAgICAgcmV0dXJuIF9nZXRob3N0YnluYW1lKGhvc3RwKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nZXRwd3VpZCh1aWQpIHsKICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9nZXR0aW1lb2ZkYXkocHRyKSB7CiAgICAgICAgdmFyIG5vdyA9IERhdGUubm93KCk7CiAgICAgICAgSEVBUDMyW3B0ciA+PiAyXSA9IG5vdyAvIDFlMyB8IDA7CiAgICAgICAgSEVBUDMyW3B0ciArIDQgPj4gMl0gPSBub3cgJSAxZTMgKiAxZTMgfCAwOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX2dsQWN0aXZlVGV4dHVyZSh4MCkgewogICAgICAgIEdMY3R4WyJhY3RpdmVUZXh0dXJlIl0oeDApCiAgICB9CgogICAgZnVuY3Rpb24gX2dsQXR0YWNoU2hhZGVyKHByb2dyYW0sIHNoYWRlcikgewogICAgICAgIEdMY3R4LmF0dGFjaFNoYWRlcihHTC5wcm9ncmFtc1twcm9ncmFtXSwgR0wuc2hhZGVyc1tzaGFkZXJdKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEJlZ2luUXVlcnkodGFyZ2V0LCBpZCkgewogICAgICAgIEdMY3R4WyJiZWdpblF1ZXJ5Il0odGFyZ2V0LCBpZCA/IEdMLnF1ZXJpZXNbaWRdIDogbnVsbCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCZWdpblRyYW5zZm9ybUZlZWRiYWNrKHgwKSB7CiAgICAgICAgR0xjdHhbImJlZ2luVHJhbnNmb3JtRmVlZGJhY2siXSh4MCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCaW5kQXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgaW5kZXgsIG5hbWUpIHsKICAgICAgICBuYW1lID0gUG9pbnRlcl9zdHJpbmdpZnkobmFtZSk7CiAgICAgICAgR0xjdHguYmluZEF0dHJpYkxvY2F0aW9uKEdMLnByb2dyYW1zW3Byb2dyYW1dLCBpbmRleCwgbmFtZSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCaW5kQnVmZmVyKHRhcmdldCwgYnVmZmVyKSB7CiAgICAgICAgdmFyIGJ1ZmZlck9iaiA9IGJ1ZmZlciA/IEdMLmJ1ZmZlcnNbYnVmZmVyXSA6IG51bGw7CiAgICAgICAgaWYgKHRhcmdldCA9PSAzNTA1MSkgewogICAgICAgICAgICBHTGN0eC5jdXJyZW50UGl4ZWxQYWNrQnVmZmVyQmluZGluZyA9IGJ1ZmZlcgogICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0ID09IDM1MDUyKSB7CiAgICAgICAgICAgIEdMY3R4LmN1cnJlbnRQaXhlbFVucGFja0J1ZmZlckJpbmRpbmcgPSBidWZmZXIKICAgICAgICB9CiAgICAgICAgR0xjdHguYmluZEJ1ZmZlcih0YXJnZXQsIGJ1ZmZlck9iaikKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCaW5kQnVmZmVyQmFzZSh0YXJnZXQsIGluZGV4LCBidWZmZXIpIHsKICAgICAgICB2YXIgYnVmZmVyT2JqID0gYnVmZmVyID8gR0wuYnVmZmVyc1tidWZmZXJdIDogbnVsbDsKICAgICAgICBHTGN0eFsiYmluZEJ1ZmZlckJhc2UiXSh0YXJnZXQsIGluZGV4LCBidWZmZXJPYmopCiAgICB9CgogICAgZnVuY3Rpb24gX2dsQmluZEZyYW1lYnVmZmVyKHRhcmdldCwgZnJhbWVidWZmZXIpIHsKICAgICAgICBHTGN0eC5iaW5kRnJhbWVidWZmZXIodGFyZ2V0LCBmcmFtZWJ1ZmZlciA/IEdMLmZyYW1lYnVmZmVyc1tmcmFtZWJ1ZmZlcl0gOiBudWxsKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEJpbmRSZW5kZXJidWZmZXIodGFyZ2V0LCByZW5kZXJidWZmZXIpIHsKICAgICAgICBHTGN0eC5iaW5kUmVuZGVyYnVmZmVyKHRhcmdldCwgcmVuZGVyYnVmZmVyID8gR0wucmVuZGVyYnVmZmVyc1tyZW5kZXJidWZmZXJdIDogbnVsbCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCaW5kU2FtcGxlcih1bml0LCBzYW1wbGVyKSB7CiAgICAgICAgR0xjdHhbImJpbmRTYW1wbGVyIl0odW5pdCwgc2FtcGxlciA/IEdMLnNhbXBsZXJzW3NhbXBsZXJdIDogbnVsbCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCaW5kVGV4dHVyZSh0YXJnZXQsIHRleHR1cmUpIHsKICAgICAgICBHTGN0eC5iaW5kVGV4dHVyZSh0YXJnZXQsIHRleHR1cmUgPyBHTC50ZXh0dXJlc1t0ZXh0dXJlXSA6IG51bGwpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsQmluZFRyYW5zZm9ybUZlZWRiYWNrKHRhcmdldCwgaWQpIHsKICAgICAgICB2YXIgdHJhbnNmb3JtRmVlZGJhY2sgPSBpZCA/IEdMLnRyYW5zZm9ybUZlZWRiYWNrc1tpZF0gOiBudWxsOwogICAgICAgIGlmIChpZCAmJiAhdHJhbnNmb3JtRmVlZGJhY2spIHsKICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4Mik7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBHTGN0eFsiYmluZFRyYW5zZm9ybUZlZWRiYWNrIl0odGFyZ2V0LCB0cmFuc2Zvcm1GZWVkYmFjaykKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCaW5kVmVydGV4QXJyYXkodmFvKSB7CiAgICAgICAgR0xjdHhbImJpbmRWZXJ0ZXhBcnJheSJdKEdMLnZhb3NbdmFvXSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCbGVuZEVxdWF0aW9uKHgwKSB7CiAgICAgICAgR0xjdHhbImJsZW5kRXF1YXRpb24iXSh4MCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCbGVuZEVxdWF0aW9uU2VwYXJhdGUoeDAsIHgxKSB7CiAgICAgICAgR0xjdHhbImJsZW5kRXF1YXRpb25TZXBhcmF0ZSJdKHgwLCB4MSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCbGVuZEZ1bmNTZXBhcmF0ZSh4MCwgeDEsIHgyLCB4MykgewogICAgICAgIEdMY3R4WyJibGVuZEZ1bmNTZXBhcmF0ZSJdKHgwLCB4MSwgeDIsIHgzKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEJsaXRGcmFtZWJ1ZmZlcih4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSkgewogICAgICAgIEdMY3R4WyJibGl0RnJhbWVidWZmZXIiXSh4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xCdWZmZXJEYXRhKHRhcmdldCwgc2l6ZSwgZGF0YSwgdXNhZ2UpIHsKICAgICAgICBpZiAoIWRhdGEpIHsKICAgICAgICAgICAgR0xjdHguYnVmZmVyRGF0YSh0YXJnZXQsIHNpemUsIHVzYWdlKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChHTC5jdXJyZW50Q29udGV4dC5zdXBwb3J0c1dlYkdMMkVudHJ5UG9pbnRzKSB7CiAgICAgICAgICAgICAgICBHTGN0eC5idWZmZXJEYXRhKHRhcmdldCwgSEVBUFU4LCB1c2FnZSwgZGF0YSwgc2l6ZSk7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQogICAgICAgICAgICBHTGN0eC5idWZmZXJEYXRhKHRhcmdldCwgSEVBUFU4LnN1YmFycmF5KGRhdGEsIGRhdGEgKyBzaXplKSwgdXNhZ2UpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEJ1ZmZlclN1YkRhdGEodGFyZ2V0LCBvZmZzZXQsIHNpemUsIGRhdGEpIHsKICAgICAgICBpZiAoR0wuY3VycmVudENvbnRleHQuc3VwcG9ydHNXZWJHTDJFbnRyeVBvaW50cykgewogICAgICAgICAgICBHTGN0eC5idWZmZXJTdWJEYXRhKHRhcmdldCwgb2Zmc2V0LCBIRUFQVTgsIGRhdGEsIHNpemUpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgR0xjdHguYnVmZmVyU3ViRGF0YSh0YXJnZXQsIG9mZnNldCwgSEVBUFU4LnN1YmFycmF5KGRhdGEsIGRhdGEgKyBzaXplKSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xDaGVja0ZyYW1lYnVmZmVyU3RhdHVzKHgwKSB7CiAgICAgICAgcmV0dXJuIEdMY3R4WyJjaGVja0ZyYW1lYnVmZmVyU3RhdHVzIl0oeDApCiAgICB9CgogICAgZnVuY3Rpb24gX2dsQ2xlYXIoeDApIHsKICAgICAgICBHTGN0eFsiY2xlYXIiXSh4MCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xDbGVhckNvbG9yKHgwLCB4MSwgeDIsIHgzKSB7CiAgICAgICAgR0xjdHhbImNsZWFyQ29sb3IiXSh4MCwgeDEsIHgyLCB4MykKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xDbGVhckRlcHRoZih4MCkgewogICAgICAgIEdMY3R4WyJjbGVhckRlcHRoIl0oeDApCiAgICB9CgogICAgZnVuY3Rpb24gX2dsQ2xlYXJTdGVuY2lsKHgwKSB7CiAgICAgICAgR0xjdHhbImNsZWFyU3RlbmNpbCJdKHgwKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbENsaWVudFdhaXRTeW5jKHN5bmMsIGZsYWdzLCB0aW1lb3V0TG8sIHRpbWVvdXRIaSkgewogICAgICAgIHRpbWVvdXRMbyA9IHRpbWVvdXRMbyA+Pj4gMDsKICAgICAgICB0aW1lb3V0SGkgPSB0aW1lb3V0SGkgPj4+IDA7CiAgICAgICAgdmFyIHRpbWVvdXQgPSB0aW1lb3V0TG8gPT0gNDI5NDk2NzI5NSAmJiB0aW1lb3V0SGkgPT0gNDI5NDk2NzI5NSA/IC0xIDogbWFrZUJpZ0ludCh0aW1lb3V0TG8sIHRpbWVvdXRIaSwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIEdMY3R4LmNsaWVudFdhaXRTeW5jKEdMLnN5bmNzW3N5bmNdLCBmbGFncywgdGltZW91dCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xDb2xvck1hc2socmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpIHsKICAgICAgICBHTGN0eC5jb2xvck1hc2soISFyZWQsICEhZ3JlZW4sICEhYmx1ZSwgISFhbHBoYSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xDb21waWxlU2hhZGVyKHNoYWRlcikgewogICAgICAgIEdMY3R4LmNvbXBpbGVTaGFkZXIoR0wuc2hhZGVyc1tzaGFkZXJdKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbENvbXByZXNzZWRUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsIGltYWdlU2l6ZSwgZGF0YSkgewogICAgICAgIGlmIChHTC5jdXJyZW50Q29udGV4dC5zdXBwb3J0c1dlYkdMMkVudHJ5UG9pbnRzKSB7CiAgICAgICAgICAgIEdMY3R4WyJjb21wcmVzc2VkVGV4SW1hZ2UyRCJdKHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsIEhFQVBVOCwgZGF0YSwgaW1hZ2VTaXplKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIEdMY3R4WyJjb21wcmVzc2VkVGV4SW1hZ2UyRCJdKHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsIGRhdGEgPyBIRUFQVTguc3ViYXJyYXkoZGF0YSwgZGF0YSArIGltYWdlU2l6ZSkgOiBudWxsKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbENvbXByZXNzZWRUZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgaW1hZ2VTaXplLCBkYXRhKSB7CiAgICAgICAgaWYgKEdMLmN1cnJlbnRDb250ZXh0LnN1cHBvcnRzV2ViR0wyRW50cnlQb2ludHMpIHsKICAgICAgICAgICAgR0xjdHhbImNvbXByZXNzZWRUZXhTdWJJbWFnZTJEIl0odGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBIRUFQVTgsIGRhdGEsIGltYWdlU2l6ZSk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBHTGN0eFsiY29tcHJlc3NlZFRleFN1YkltYWdlMkQiXSh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIGRhdGEgPyBIRUFQVTguc3ViYXJyYXkoZGF0YSwgZGF0YSArIGltYWdlU2l6ZSkgOiBudWxsKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbENvbXByZXNzZWRUZXhTdWJJbWFnZTNEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHpvZmZzZXQsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBmb3JtYXQsIGltYWdlU2l6ZSwgZGF0YSkgewogICAgICAgIGlmIChHTC5jdXJyZW50Q29udGV4dC5zdXBwb3J0c1dlYkdMMkVudHJ5UG9pbnRzKSB7CiAgICAgICAgICAgIEdMY3R4WyJjb21wcmVzc2VkVGV4U3ViSW1hZ2UzRCJdKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHpvZmZzZXQsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBmb3JtYXQsIEhFQVBVOCwgZGF0YSwgaW1hZ2VTaXplKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIEdMY3R4WyJjb21wcmVzc2VkVGV4U3ViSW1hZ2UzRCJdKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHpvZmZzZXQsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBmb3JtYXQsIGRhdGEgPyBIRUFQVTguc3ViYXJyYXkoZGF0YSwgZGF0YSArIGltYWdlU2l6ZSkgOiBudWxsKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xDb3B5QnVmZmVyU3ViRGF0YSh4MCwgeDEsIHgyLCB4MywgeDQpIHsKICAgICAgICBHTGN0eFsiY29weUJ1ZmZlclN1YkRhdGEiXSh4MCwgeDEsIHgyLCB4MywgeDQpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsQ29weVRleEltYWdlMkQoeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3KSB7CiAgICAgICAgR0xjdHhbImNvcHlUZXhJbWFnZTJEIl0oeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3KQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbENvcHlUZXhTdWJJbWFnZTJEKHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NykgewogICAgICAgIEdMY3R4WyJjb3B5VGV4U3ViSW1hZ2UyRCJdKHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NykKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xDcmVhdGVQcm9ncmFtKCkgewogICAgICAgIHZhciBpZCA9IEdMLmdldE5ld0lkKEdMLnByb2dyYW1zKTsKICAgICAgICB2YXIgcHJvZ3JhbSA9IEdMY3R4LmNyZWF0ZVByb2dyYW0oKTsKICAgICAgICBwcm9ncmFtLm5hbWUgPSBpZDsKICAgICAgICBHTC5wcm9ncmFtc1tpZF0gPSBwcm9ncmFtOwogICAgICAgIHJldHVybiBpZAogICAgfQoKICAgIGZ1bmN0aW9uIF9nbENyZWF0ZVNoYWRlcihzaGFkZXJUeXBlKSB7CiAgICAgICAgdmFyIGlkID0gR0wuZ2V0TmV3SWQoR0wuc2hhZGVycyk7CiAgICAgICAgR0wuc2hhZGVyc1tpZF0gPSBHTGN0eC5jcmVhdGVTaGFkZXIoc2hhZGVyVHlwZSk7CiAgICAgICAgcmV0dXJuIGlkCiAgICB9CgogICAgZnVuY3Rpb24gX2dsQ3VsbEZhY2UoeDApIHsKICAgICAgICBHTGN0eFsiY3VsbEZhY2UiXSh4MCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xEZWxldGVCdWZmZXJzKG4sIGJ1ZmZlcnMpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICB2YXIgaWQgPSBIRUFQMzJbYnVmZmVycyArIGkgKiA0ID4+IDJdOwogICAgICAgICAgICB2YXIgYnVmZmVyID0gR0wuYnVmZmVyc1tpZF07CiAgICAgICAgICAgIGlmICghYnVmZmVyKSBjb250aW51ZTsKICAgICAgICAgICAgR0xjdHguZGVsZXRlQnVmZmVyKGJ1ZmZlcik7CiAgICAgICAgICAgIGJ1ZmZlci5uYW1lID0gMDsKICAgICAgICAgICAgR0wuYnVmZmVyc1tpZF0gPSBudWxsOwogICAgICAgICAgICBpZiAoaWQgPT0gR0wuY3VyckFycmF5QnVmZmVyKSBHTC5jdXJyQXJyYXlCdWZmZXIgPSAwOwogICAgICAgICAgICBpZiAoaWQgPT0gR0wuY3VyckVsZW1lbnRBcnJheUJ1ZmZlcikgR0wuY3VyckVsZW1lbnRBcnJheUJ1ZmZlciA9IDAKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsRGVsZXRlRnJhbWVidWZmZXJzKG4sIGZyYW1lYnVmZmVycykgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgICAgIHZhciBpZCA9IEhFQVAzMltmcmFtZWJ1ZmZlcnMgKyBpICogNCA+PiAyXTsKICAgICAgICAgICAgdmFyIGZyYW1lYnVmZmVyID0gR0wuZnJhbWVidWZmZXJzW2lkXTsKICAgICAgICAgICAgaWYgKCFmcmFtZWJ1ZmZlcikgY29udGludWU7CiAgICAgICAgICAgIEdMY3R4LmRlbGV0ZUZyYW1lYnVmZmVyKGZyYW1lYnVmZmVyKTsKICAgICAgICAgICAgZnJhbWVidWZmZXIubmFtZSA9IDA7CiAgICAgICAgICAgIEdMLmZyYW1lYnVmZmVyc1tpZF0gPSBudWxsCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbERlbGV0ZVByb2dyYW0oaWQpIHsKICAgICAgICBpZiAoIWlkKSByZXR1cm47CiAgICAgICAgdmFyIHByb2dyYW0gPSBHTC5wcm9ncmFtc1tpZF07CiAgICAgICAgaWYgKCFwcm9ncmFtKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODEpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgR0xjdHguZGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsKICAgICAgICBwcm9ncmFtLm5hbWUgPSAwOwogICAgICAgIEdMLnByb2dyYW1zW2lkXSA9IG51bGw7CiAgICAgICAgR0wucHJvZ3JhbUluZm9zW2lkXSA9IG51bGwKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xEZWxldGVRdWVyaWVzKG4sIGlkcykgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIHZhciBpZCA9IEhFQVAzMltpZHMgKyBpICogNCA+PiAyXTsKICAgICAgICAgICAgdmFyIHF1ZXJ5ID0gR0wucXVlcmllc1tpZF07CiAgICAgICAgICAgIGlmICghcXVlcnkpIGNvbnRpbnVlOwogICAgICAgICAgICBHTGN0eFsiZGVsZXRlUXVlcnkiXShxdWVyeSk7CiAgICAgICAgICAgIEdMLnF1ZXJpZXNbaWRdID0gbnVsbAogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xEZWxldGVSZW5kZXJidWZmZXJzKG4sIHJlbmRlcmJ1ZmZlcnMpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICB2YXIgaWQgPSBIRUFQMzJbcmVuZGVyYnVmZmVycyArIGkgKiA0ID4+IDJdOwogICAgICAgICAgICB2YXIgcmVuZGVyYnVmZmVyID0gR0wucmVuZGVyYnVmZmVyc1tpZF07CiAgICAgICAgICAgIGlmICghcmVuZGVyYnVmZmVyKSBjb250aW51ZTsKICAgICAgICAgICAgR0xjdHguZGVsZXRlUmVuZGVyYnVmZmVyKHJlbmRlcmJ1ZmZlcik7CiAgICAgICAgICAgIHJlbmRlcmJ1ZmZlci5uYW1lID0gMDsKICAgICAgICAgICAgR0wucmVuZGVyYnVmZmVyc1tpZF0gPSBudWxsCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbERlbGV0ZVNhbXBsZXJzKG4sIHNhbXBsZXJzKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgdmFyIGlkID0gSEVBUDMyW3NhbXBsZXJzICsgaSAqIDQgPj4gMl07CiAgICAgICAgICAgIHZhciBzYW1wbGVyID0gR0wuc2FtcGxlcnNbaWRdOwogICAgICAgICAgICBpZiAoIXNhbXBsZXIpIGNvbnRpbnVlOwogICAgICAgICAgICBHTGN0eFsiZGVsZXRlU2FtcGxlciJdKHNhbXBsZXIpOwogICAgICAgICAgICBzYW1wbGVyLm5hbWUgPSAwOwogICAgICAgICAgICBHTC5zYW1wbGVyc1tpZF0gPSBudWxsCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbERlbGV0ZVNoYWRlcihpZCkgewogICAgICAgIGlmICghaWQpIHJldHVybjsKICAgICAgICB2YXIgc2hhZGVyID0gR0wuc2hhZGVyc1tpZF07CiAgICAgICAgaWYgKCFzaGFkZXIpIHsKICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MSk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBHTGN0eC5kZWxldGVTaGFkZXIoc2hhZGVyKTsKICAgICAgICBHTC5zaGFkZXJzW2lkXSA9IG51bGwKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xEZWxldGVTeW5jKGlkKSB7CiAgICAgICAgaWYgKCFpZCkgcmV0dXJuOwogICAgICAgIHZhciBzeW5jID0gR0wuc3luY3NbaWRdOwogICAgICAgIGlmICghc3luYykgewogICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgxKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIEdMY3R4LmRlbGV0ZVN5bmMoc3luYyk7CiAgICAgICAgc3luYy5uYW1lID0gMDsKICAgICAgICBHTC5zeW5jc1tpZF0gPSBudWxsCiAgICB9CgogICAgZnVuY3Rpb24gX2dsRGVsZXRlVGV4dHVyZXMobiwgdGV4dHVyZXMpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICB2YXIgaWQgPSBIRUFQMzJbdGV4dHVyZXMgKyBpICogNCA+PiAyXTsKICAgICAgICAgICAgdmFyIHRleHR1cmUgPSBHTC50ZXh0dXJlc1tpZF07CiAgICAgICAgICAgIGlmICghdGV4dHVyZSkgY29udGludWU7CiAgICAgICAgICAgIEdMY3R4LmRlbGV0ZVRleHR1cmUodGV4dHVyZSk7CiAgICAgICAgICAgIHRleHR1cmUubmFtZSA9IDA7CiAgICAgICAgICAgIEdMLnRleHR1cmVzW2lkXSA9IG51bGwKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsRGVsZXRlVHJhbnNmb3JtRmVlZGJhY2tzKG4sIGlkcykgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIHZhciBpZCA9IEhFQVAzMltpZHMgKyBpICogNCA+PiAyXTsKICAgICAgICAgICAgdmFyIHRyYW5zZm9ybUZlZWRiYWNrID0gR0wudHJhbnNmb3JtRmVlZGJhY2tzW2lkXTsKICAgICAgICAgICAgaWYgKCF0cmFuc2Zvcm1GZWVkYmFjaykgY29udGludWU7CiAgICAgICAgICAgIEdMY3R4WyJkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayJdKHRyYW5zZm9ybUZlZWRiYWNrKTsKICAgICAgICAgICAgdHJhbnNmb3JtRmVlZGJhY2submFtZSA9IDA7CiAgICAgICAgICAgIEdMLnRyYW5zZm9ybUZlZWRiYWNrc1tpZF0gPSBudWxsCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbERlbGV0ZVZlcnRleEFycmF5cyhuLCB2YW9zKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgdmFyIGlkID0gSEVBUDMyW3Zhb3MgKyBpICogNCA+PiAyXTsKICAgICAgICAgICAgR0xjdHhbImRlbGV0ZVZlcnRleEFycmF5Il0oR0wudmFvc1tpZF0pOwogICAgICAgICAgICBHTC52YW9zW2lkXSA9IG51bGwKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsRGVwdGhGdW5jKHgwKSB7CiAgICAgICAgR0xjdHhbImRlcHRoRnVuYyJdKHgwKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbERlcHRoTWFzayhmbGFnKSB7CiAgICAgICAgR0xjdHguZGVwdGhNYXNrKCEhZmxhZykKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xEZXRhY2hTaGFkZXIocHJvZ3JhbSwgc2hhZGVyKSB7CiAgICAgICAgR0xjdHguZGV0YWNoU2hhZGVyKEdMLnByb2dyYW1zW3Byb2dyYW1dLCBHTC5zaGFkZXJzW3NoYWRlcl0pCiAgICB9CgogICAgZnVuY3Rpb24gX2dsRGlzYWJsZSh4MCkgewogICAgICAgIEdMY3R4WyJkaXNhYmxlIl0oeDApCiAgICB9CgogICAgZnVuY3Rpb24gX2dsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGluZGV4KSB7CiAgICAgICAgR0xjdHguZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGluZGV4KQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbERyYXdBcnJheXMobW9kZSwgZmlyc3QsIGNvdW50KSB7CiAgICAgICAgR0xjdHguZHJhd0FycmF5cyhtb2RlLCBmaXJzdCwgY291bnQpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsRHJhd0FycmF5c0luc3RhbmNlZChtb2RlLCBmaXJzdCwgY291bnQsIHByaW1jb3VudCkgewogICAgICAgIEdMY3R4WyJkcmF3QXJyYXlzSW5zdGFuY2VkIl0obW9kZSwgZmlyc3QsIGNvdW50LCBwcmltY291bnQpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsRHJhd0J1ZmZlcnMobiwgYnVmcykgewogICAgICAgIHZhciBidWZBcnJheSA9IEdMLnRlbXBGaXhlZExlbmd0aEFycmF5W25dOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGJ1ZkFycmF5W2ldID0gSEVBUDMyW2J1ZnMgKyBpICogNCA+PiAyXQogICAgICAgIH0KICAgICAgICBHTGN0eFsiZHJhd0J1ZmZlcnMiXShidWZBcnJheSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xEcmF3RWxlbWVudHMobW9kZSwgY291bnQsIHR5cGUsIGluZGljZXMpIHsKICAgICAgICBHTGN0eC5kcmF3RWxlbWVudHMobW9kZSwgY291bnQsIHR5cGUsIGluZGljZXMpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsRHJhd0VsZW1lbnRzSW5zdGFuY2VkKG1vZGUsIGNvdW50LCB0eXBlLCBpbmRpY2VzLCBwcmltY291bnQpIHsKICAgICAgICBHTGN0eFsiZHJhd0VsZW1lbnRzSW5zdGFuY2VkIl0obW9kZSwgY291bnQsIHR5cGUsIGluZGljZXMsIHByaW1jb3VudCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xFbmFibGUoeDApIHsKICAgICAgICBHTGN0eFsiZW5hYmxlIl0oeDApCiAgICB9CgogICAgZnVuY3Rpb24gX2dsRW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaW5kZXgpIHsKICAgICAgICBHTGN0eC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpbmRleCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xFbmRRdWVyeSh4MCkgewogICAgICAgIEdMY3R4WyJlbmRRdWVyeSJdKHgwKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEVuZFRyYW5zZm9ybUZlZWRiYWNrKCkgewogICAgICAgIEdMY3R4WyJlbmRUcmFuc2Zvcm1GZWVkYmFjayJdKCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xGZW5jZVN5bmMoY29uZGl0aW9uLCBmbGFncykgewogICAgICAgIHZhciBzeW5jID0gR0xjdHguZmVuY2VTeW5jKGNvbmRpdGlvbiwgZmxhZ3MpOwogICAgICAgIGlmIChzeW5jKSB7CiAgICAgICAgICAgIHZhciBpZCA9IEdMLmdldE5ld0lkKEdMLnN5bmNzKTsKICAgICAgICAgICAgc3luYy5uYW1lID0gaWQ7CiAgICAgICAgICAgIEdMLnN5bmNzW2lkXSA9IHN5bmM7CiAgICAgICAgICAgIHJldHVybiBpZAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEZpbmlzaCgpIHsKICAgICAgICBHTGN0eFsiZmluaXNoIl0oKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEZsdXNoKCkgewogICAgICAgIEdMY3R4WyJmbHVzaCJdKCkKICAgIH0KCiAgICBmdW5jdGlvbiBlbXNjcmlwdGVuV2ViR0xHZXRCdWZmZXJCaW5kaW5nKHRhcmdldCkgewogICAgICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgICAgICAgIGNhc2UgMzQ5NjI6CiAgICAgICAgICAgICAgICB0YXJnZXQgPSAzNDk2NDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM0OTYzOgogICAgICAgICAgICAgICAgdGFyZ2V0ID0gMzQ5NjU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzNTA1MToKICAgICAgICAgICAgICAgIHRhcmdldCA9IDM1MDUzOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzUwNTI6CiAgICAgICAgICAgICAgICB0YXJnZXQgPSAzNTA1NTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM1OTgyOgogICAgICAgICAgICAgICAgdGFyZ2V0ID0gMzU5ODM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzNjY2MjoKICAgICAgICAgICAgICAgIHRhcmdldCA9IDM2NjYyOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzY2NjM6CiAgICAgICAgICAgICAgICB0YXJnZXQgPSAzNjY2MzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM1MzQ1OgogICAgICAgICAgICAgICAgdGFyZ2V0ID0gMzUzNjg7CiAgICAgICAgICAgICAgICBicmVhawogICAgICAgIH0KICAgICAgICB2YXIgYnVmZmVyID0gR0xjdHguZ2V0UGFyYW1ldGVyKHRhcmdldCk7CiAgICAgICAgaWYgKGJ1ZmZlcikgcmV0dXJuIGJ1ZmZlci5uYW1lIHwgMDsKICAgICAgICBlbHNlIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gZW1zY3JpcHRlbldlYkdMVmFsaWRhdGVNYXBCdWZmZXJUYXJnZXQodGFyZ2V0KSB7CiAgICAgICAgc3dpdGNoICh0YXJnZXQpIHsKICAgICAgICAgICAgY2FzZSAzNDk2MjoKICAgICAgICAgICAgY2FzZSAzNDk2MzoKICAgICAgICAgICAgY2FzZSAzNjY2MjoKICAgICAgICAgICAgY2FzZSAzNjY2MzoKICAgICAgICAgICAgY2FzZSAzNTA1MToKICAgICAgICAgICAgY2FzZSAzNTA1MjoKICAgICAgICAgICAgY2FzZSAzNTg4MjoKICAgICAgICAgICAgY2FzZSAzNTk4MjoKICAgICAgICAgICAgY2FzZSAzNTM0NToKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEZsdXNoTWFwcGVkQnVmZmVyUmFuZ2UodGFyZ2V0LCBvZmZzZXQsIGxlbmd0aCkgewogICAgICAgIGlmICghZW1zY3JpcHRlbldlYkdMVmFsaWRhdGVNYXBCdWZmZXJUYXJnZXQodGFyZ2V0KSkgewogICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgwKTsKICAgICAgICAgICAgTW9kdWxlLnByaW50RXJyKCJHTF9JTlZBTElEX0VOVU0gaW4gZ2xGbHVzaE1hcHBlZEJ1ZmZlclJhbmdlIik7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICB2YXIgbWFwcGluZyA9IEdMLm1hcHBlZEJ1ZmZlcnNbZW1zY3JpcHRlbldlYkdMR2V0QnVmZmVyQmluZGluZyh0YXJnZXQpXTsKICAgICAgICBpZiAoIW1hcHBpbmcpIHsKICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4Mik7CiAgICAgICAgICAgIE1vZHVsZS5wcmludEVycm9yKCJidWZmZXIgd2FzIG5ldmVyIG1hcHBlZCBpbiBnbEZsdXNoTWFwcGVkQnVmZmVyUmFuZ2UiKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIGlmICghKG1hcHBpbmcuYWNjZXNzICYgMTYpKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODIpOwogICAgICAgICAgICBNb2R1bGUucHJpbnRFcnJvcigiYnVmZmVyIHdhcyBub3QgbWFwcGVkIHdpdGggR0xfTUFQX0ZMVVNIX0VYUExJQ0lUX0JJVCBpbiBnbEZsdXNoTWFwcGVkQnVmZmVyUmFuZ2UiKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIGlmIChvZmZzZXQgPCAwIHx8IGxlbmd0aCA8IDAgfHwgb2Zmc2V0ICsgbGVuZ3RoID4gbWFwcGluZy5sZW5ndGgpIHsKICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MSk7CiAgICAgICAgICAgIE1vZHVsZS5wcmludEVycm9yKCJpbnZhbGlkIHJhbmdlIGluIGdsRmx1c2hNYXBwZWRCdWZmZXJSYW5nZSIpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgR0xjdHguYnVmZmVyU3ViRGF0YSh0YXJnZXQsIG1hcHBpbmcub2Zmc2V0LCBIRUFQVTguc3ViYXJyYXkobWFwcGluZy5tZW0gKyBvZmZzZXQsIG1hcHBpbmcubWVtICsgb2Zmc2V0ICsgbGVuZ3RoKSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0YXJnZXQsIGF0dGFjaG1lbnQsIHJlbmRlcmJ1ZmZlcnRhcmdldCwgcmVuZGVyYnVmZmVyKSB7CiAgICAgICAgR0xjdHguZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2htZW50LCByZW5kZXJidWZmZXJ0YXJnZXQsIEdMLnJlbmRlcmJ1ZmZlcnNbcmVuZGVyYnVmZmVyXSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRCh0YXJnZXQsIGF0dGFjaG1lbnQsIHRleHRhcmdldCwgdGV4dHVyZSwgbGV2ZWwpIHsKICAgICAgICBHTGN0eC5mcmFtZWJ1ZmZlclRleHR1cmUyRCh0YXJnZXQsIGF0dGFjaG1lbnQsIHRleHRhcmdldCwgR0wudGV4dHVyZXNbdGV4dHVyZV0sIGxldmVsKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKHRhcmdldCwgYXR0YWNobWVudCwgdGV4dHVyZSwgbGV2ZWwsIGxheWVyKSB7CiAgICAgICAgR0xjdHguZnJhbWVidWZmZXJUZXh0dXJlTGF5ZXIodGFyZ2V0LCBhdHRhY2htZW50LCBHTC50ZXh0dXJlc1t0ZXh0dXJlXSwgbGV2ZWwsIGxheWVyKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEZyb250RmFjZSh4MCkgewogICAgICAgIEdMY3R4WyJmcm9udEZhY2UiXSh4MCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZW5CdWZmZXJzKG4sIGJ1ZmZlcnMpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICB2YXIgYnVmZmVyID0gR0xjdHguY3JlYXRlQnVmZmVyKCk7CiAgICAgICAgICAgIGlmICghYnVmZmVyKSB7CiAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgyKTsKICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgbikgSEVBUDMyW2J1ZmZlcnMgKyBpKysgKiA0ID4+IDJdID0gMDsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpZCA9IEdMLmdldE5ld0lkKEdMLmJ1ZmZlcnMpOwogICAgICAgICAgICBidWZmZXIubmFtZSA9IGlkOwogICAgICAgICAgICBHTC5idWZmZXJzW2lkXSA9IGJ1ZmZlcjsKICAgICAgICAgICAgSEVBUDMyW2J1ZmZlcnMgKyBpICogNCA+PiAyXSA9IGlkCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdlbkZyYW1lYnVmZmVycyhuLCBpZHMpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICB2YXIgZnJhbWVidWZmZXIgPSBHTGN0eC5jcmVhdGVGcmFtZWJ1ZmZlcigpOwogICAgICAgICAgICBpZiAoIWZyYW1lYnVmZmVyKSB7CiAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgyKTsKICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgbikgSEVBUDMyW2lkcyArIGkrKyAqIDQgPj4gMl0gPSAwOwogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlkID0gR0wuZ2V0TmV3SWQoR0wuZnJhbWVidWZmZXJzKTsKICAgICAgICAgICAgZnJhbWVidWZmZXIubmFtZSA9IGlkOwogICAgICAgICAgICBHTC5mcmFtZWJ1ZmZlcnNbaWRdID0gZnJhbWVidWZmZXI7CiAgICAgICAgICAgIEhFQVAzMltpZHMgKyBpICogNCA+PiAyXSA9IGlkCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdlblF1ZXJpZXMobiwgaWRzKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgdmFyIHF1ZXJ5ID0gR0xjdHhbImNyZWF0ZVF1ZXJ5Il0oKTsKICAgICAgICAgICAgaWYgKCFxdWVyeSkgewogICAgICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4Mik7CiAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IG4pIEhFQVAzMltpZHMgKyBpKysgKiA0ID4+IDJdID0gMDsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpZCA9IEdMLmdldE5ld0lkKEdMLnF1ZXJpZXMpOwogICAgICAgICAgICBxdWVyeS5uYW1lID0gaWQ7CiAgICAgICAgICAgIEdMLnF1ZXJpZXNbaWRdID0gcXVlcnk7CiAgICAgICAgICAgIEhFQVAzMltpZHMgKyBpICogNCA+PiAyXSA9IGlkCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdlblJlbmRlcmJ1ZmZlcnMobiwgcmVuZGVyYnVmZmVycykgewogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIHZhciByZW5kZXJidWZmZXIgPSBHTGN0eC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKICAgICAgICAgICAgaWYgKCFyZW5kZXJidWZmZXIpIHsKICAgICAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODIpOwogICAgICAgICAgICAgICAgd2hpbGUgKGkgPCBuKSBIRUFQMzJbcmVuZGVyYnVmZmVycyArIGkrKyAqIDQgPj4gMl0gPSAwOwogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlkID0gR0wuZ2V0TmV3SWQoR0wucmVuZGVyYnVmZmVycyk7CiAgICAgICAgICAgIHJlbmRlcmJ1ZmZlci5uYW1lID0gaWQ7CiAgICAgICAgICAgIEdMLnJlbmRlcmJ1ZmZlcnNbaWRdID0gcmVuZGVyYnVmZmVyOwogICAgICAgICAgICBIRUFQMzJbcmVuZGVyYnVmZmVycyArIGkgKiA0ID4+IDJdID0gaWQKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsR2VuU2FtcGxlcnMobiwgc2FtcGxlcnMpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICB2YXIgc2FtcGxlciA9IEdMY3R4WyJjcmVhdGVTYW1wbGVyIl0oKTsKICAgICAgICAgICAgaWYgKCFzYW1wbGVyKSB7CiAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgyKTsKICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgbikgSEVBUDMyW3NhbXBsZXJzICsgaSsrICogNCA+PiAyXSA9IDA7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgaWQgPSBHTC5nZXROZXdJZChHTC5zYW1wbGVycyk7CiAgICAgICAgICAgIHNhbXBsZXIubmFtZSA9IGlkOwogICAgICAgICAgICBHTC5zYW1wbGVyc1tpZF0gPSBzYW1wbGVyOwogICAgICAgICAgICBIRUFQMzJbc2FtcGxlcnMgKyBpICogNCA+PiAyXSA9IGlkCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdlblRleHR1cmVzKG4sIHRleHR1cmVzKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgdmFyIHRleHR1cmUgPSBHTGN0eC5jcmVhdGVUZXh0dXJlKCk7CiAgICAgICAgICAgIGlmICghdGV4dHVyZSkgewogICAgICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4Mik7CiAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IG4pIEhFQVAzMlt0ZXh0dXJlcyArIGkrKyAqIDQgPj4gMl0gPSAwOwogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlkID0gR0wuZ2V0TmV3SWQoR0wudGV4dHVyZXMpOwogICAgICAgICAgICB0ZXh0dXJlLm5hbWUgPSBpZDsKICAgICAgICAgICAgR0wudGV4dHVyZXNbaWRdID0gdGV4dHVyZTsKICAgICAgICAgICAgSEVBUDMyW3RleHR1cmVzICsgaSAqIDQgPj4gMl0gPSBpZAogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZW5UcmFuc2Zvcm1GZWVkYmFja3MobiwgaWRzKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgdmFyIHRyYW5zZm9ybUZlZWRiYWNrID0gR0xjdHhbImNyZWF0ZVRyYW5zZm9ybUZlZWRiYWNrIl0oKTsKICAgICAgICAgICAgaWYgKCF0cmFuc2Zvcm1GZWVkYmFjaykgewogICAgICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4Mik7CiAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IG4pIEhFQVAzMltpZHMgKyBpKysgKiA0ID4+IDJdID0gMDsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpZCA9IEdMLmdldE5ld0lkKEdMLnRyYW5zZm9ybUZlZWRiYWNrcyk7CiAgICAgICAgICAgIHRyYW5zZm9ybUZlZWRiYWNrLm5hbWUgPSBpZDsKICAgICAgICAgICAgR0wudHJhbnNmb3JtRmVlZGJhY2tzW2lkXSA9IHRyYW5zZm9ybUZlZWRiYWNrOwogICAgICAgICAgICBIRUFQMzJbaWRzICsgaSAqIDQgPj4gMl0gPSBpZAogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZW5WZXJ0ZXhBcnJheXMobiwgYXJyYXlzKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgdmFyIHZhbyA9IEdMY3R4WyJjcmVhdGVWZXJ0ZXhBcnJheSJdKCk7CiAgICAgICAgICAgIGlmICghdmFvKSB7CiAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgyKTsKICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgbikgSEVBUDMyW2FycmF5cyArIGkrKyAqIDQgPj4gMl0gPSAwOwogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlkID0gR0wuZ2V0TmV3SWQoR0wudmFvcyk7CiAgICAgICAgICAgIHZhby5uYW1lID0gaWQ7CiAgICAgICAgICAgIEdMLnZhb3NbaWRdID0gdmFvOwogICAgICAgICAgICBIRUFQMzJbYXJyYXlzICsgaSAqIDQgPj4gMl0gPSBpZAogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZW5lcmF0ZU1pcG1hcCh4MCkgewogICAgICAgIEdMY3R4WyJnZW5lcmF0ZU1pcG1hcCJdKHgwKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldEFjdGl2ZUF0dHJpYihwcm9ncmFtLCBpbmRleCwgYnVmU2l6ZSwgbGVuZ3RoLCBzaXplLCB0eXBlLCBuYW1lKSB7CiAgICAgICAgcHJvZ3JhbSA9IEdMLnByb2dyYW1zW3Byb2dyYW1dOwogICAgICAgIHZhciBpbmZvID0gR0xjdHguZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIGluZGV4KTsKICAgICAgICBpZiAoIWluZm8pIHJldHVybjsKICAgICAgICBpZiAoYnVmU2l6ZSA+IDAgJiYgbmFtZSkgewogICAgICAgICAgICB2YXIgbnVtQnl0ZXNXcml0dGVuRXhjbE51bGwgPSBzdHJpbmdUb1VURjgoaW5mby5uYW1lLCBuYW1lLCBidWZTaXplKTsKICAgICAgICAgICAgaWYgKGxlbmd0aCkgSEVBUDMyW2xlbmd0aCA+PiAyXSA9IG51bUJ5dGVzV3JpdHRlbkV4Y2xOdWxsCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGxlbmd0aCkgSEVBUDMyW2xlbmd0aCA+PiAyXSA9IDAKICAgICAgICB9CiAgICAgICAgaWYgKHNpemUpIEhFQVAzMltzaXplID4+IDJdID0gaW5mby5zaXplOwogICAgICAgIGlmICh0eXBlKSBIRUFQMzJbdHlwZSA+PiAyXSA9IGluZm8udHlwZQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgaW5kZXgsIGJ1ZlNpemUsIGxlbmd0aCwgc2l6ZSwgdHlwZSwgbmFtZSkgewogICAgICAgIHByb2dyYW0gPSBHTC5wcm9ncmFtc1twcm9ncmFtXTsKICAgICAgICB2YXIgaW5mbyA9IEdMY3R4LmdldEFjdGl2ZVVuaWZvcm0ocHJvZ3JhbSwgaW5kZXgpOwogICAgICAgIGlmICghaW5mbykgcmV0dXJuOwogICAgICAgIGlmIChidWZTaXplID4gMCAmJiBuYW1lKSB7CiAgICAgICAgICAgIHZhciBudW1CeXRlc1dyaXR0ZW5FeGNsTnVsbCA9IHN0cmluZ1RvVVRGOChpbmZvLm5hbWUsIG5hbWUsIGJ1ZlNpemUpOwogICAgICAgICAgICBpZiAobGVuZ3RoKSBIRUFQMzJbbGVuZ3RoID4+IDJdID0gbnVtQnl0ZXNXcml0dGVuRXhjbE51bGwKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAobGVuZ3RoKSBIRUFQMzJbbGVuZ3RoID4+IDJdID0gMAogICAgICAgIH0KICAgICAgICBpZiAoc2l6ZSkgSEVBUDMyW3NpemUgPj4gMl0gPSBpbmZvLnNpemU7CiAgICAgICAgaWYgKHR5cGUpIEhFQVAzMlt0eXBlID4+IDJdID0gaW5mby50eXBlCiAgICB9CgogICAgZnVuY3Rpb24gX2dsR2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShwcm9ncmFtLCB1bmlmb3JtQmxvY2tJbmRleCwgYnVmU2l6ZSwgbGVuZ3RoLCB1bmlmb3JtQmxvY2tOYW1lKSB7CiAgICAgICAgcHJvZ3JhbSA9IEdMLnByb2dyYW1zW3Byb2dyYW1dOwogICAgICAgIHZhciByZXN1bHQgPSBHTGN0eFsiZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZSJdKHByb2dyYW0sIHVuaWZvcm1CbG9ja0luZGV4KTsKICAgICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuOwogICAgICAgIGlmICh1bmlmb3JtQmxvY2tOYW1lICYmIGJ1ZlNpemUgPiAwKSB7CiAgICAgICAgICAgIHZhciBudW1CeXRlc1dyaXR0ZW5FeGNsTnVsbCA9IHN0cmluZ1RvVVRGOChyZXN1bHQsIHVuaWZvcm1CbG9ja05hbWUsIGJ1ZlNpemUpOwogICAgICAgICAgICBpZiAobGVuZ3RoKSBIRUFQMzJbbGVuZ3RoID4+IDJdID0gbnVtQnl0ZXNXcml0dGVuRXhjbE51bGwKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAobGVuZ3RoKSBIRUFQMzJbbGVuZ3RoID4+IDJdID0gMAogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZXRBY3RpdmVVbmlmb3JtQmxvY2tpdihwcm9ncmFtLCB1bmlmb3JtQmxvY2tJbmRleCwgcG5hbWUsIHBhcmFtcykgewogICAgICAgIGlmICghcGFyYW1zKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODEpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgcHJvZ3JhbSA9IEdMLnByb2dyYW1zW3Byb2dyYW1dOwogICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAzNTM5MzoKICAgICAgICAgICAgICAgIHZhciBuYW1lID0gR0xjdHhbImdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUiXShwcm9ncmFtLCB1bmlmb3JtQmxvY2tJbmRleCk7CiAgICAgICAgICAgICAgICBIRUFQMzJbcGFyYW1zID4+IDJdID0gbmFtZS5sZW5ndGggKyAxOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IEdMY3R4WyJnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIiXShwcm9ncmFtLCB1bmlmb3JtQmxvY2tJbmRleCwgcG5hbWUpOwogICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybjsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09ICJudW1iZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3BhcmFtcyA+PiAyXSA9IHJlc3VsdAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcGFyYW1zICsgaSAqIDQgPj4gMl0gPSByZXN1bHRbaV0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldEFjdGl2ZVVuaWZvcm1zaXYocHJvZ3JhbSwgdW5pZm9ybUNvdW50LCB1bmlmb3JtSW5kaWNlcywgcG5hbWUsIHBhcmFtcykgewogICAgICAgIGlmICghcGFyYW1zKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODEpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgaWYgKHVuaWZvcm1Db3VudCA+IDAgJiYgdW5pZm9ybUluZGljZXMgPT0gMCkgewogICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgxKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIHByb2dyYW0gPSBHTC5wcm9ncmFtc1twcm9ncmFtXTsKICAgICAgICB2YXIgaWRzID0gW107CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1bmlmb3JtQ291bnQ7IGkrKykgewogICAgICAgICAgICBpZHMucHVzaChIRUFQMzJbdW5pZm9ybUluZGljZXMgKyBpICogNCA+PiAyXSkKICAgICAgICB9CiAgICAgICAgdmFyIHJlc3VsdCA9IEdMY3R4WyJnZXRBY3RpdmVVbmlmb3JtcyJdKHByb2dyYW0sIGlkcywgcG5hbWUpOwogICAgICAgIGlmICghcmVzdWx0KSByZXR1cm47CiAgICAgICAgdmFyIGxlbiA9IHJlc3VsdC5sZW5ndGg7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgICBIRUFQMzJbcGFyYW1zICsgaSAqIDQgPj4gMl0gPSByZXN1bHRbaV0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsR2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgbmFtZSkgewogICAgICAgIHByb2dyYW0gPSBHTC5wcm9ncmFtc1twcm9ncmFtXTsKICAgICAgICBuYW1lID0gUG9pbnRlcl9zdHJpbmdpZnkobmFtZSk7CiAgICAgICAgcmV0dXJuIEdMY3R4LmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIG5hbWUpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsR2V0RXJyb3IoKSB7CiAgICAgICAgaWYgKEdMLmxhc3RFcnJvcikgewogICAgICAgICAgICB2YXIgZXJyb3IgPSBHTC5sYXN0RXJyb3I7CiAgICAgICAgICAgIEdMLmxhc3RFcnJvciA9IDA7CiAgICAgICAgICAgIHJldHVybiBlcnJvcgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBHTGN0eC5nZXRFcnJvcigpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUsIHBhcmFtcykgewogICAgICAgIHZhciByZXN1bHQgPSBHTGN0eC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIodGFyZ2V0LCBhdHRhY2htZW50LCBwbmFtZSk7CiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyYnVmZmVyIHx8IHJlc3VsdCBpbnN0YW5jZW9mIFdlYkdMVGV4dHVyZSkgewogICAgICAgICAgICByZXN1bHQgPSByZXN1bHQubmFtZSB8IDAKICAgICAgICB9CiAgICAgICAgSEVBUDMyW3BhcmFtcyA+PiAyXSA9IHJlc3VsdAogICAgfQoKICAgIGZ1bmN0aW9uIGVtc2NyaXB0ZW5XZWJHTEdldEluZGV4ZWQodGFyZ2V0LCBpbmRleCwgZGF0YSwgdHlwZSkgewogICAgICAgIGlmICghZGF0YSkgewogICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgxKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIHZhciByZXN1bHQgPSBHTGN0eFsiZ2V0SW5kZXhlZFBhcmFtZXRlciJdKHRhcmdldCwgaW5kZXgpOwogICAgICAgIHZhciByZXQ7CiAgICAgICAgc3dpdGNoICh0eXBlb2YgcmVzdWx0KSB7CiAgICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICAgICAgcmV0ID0gcmVzdWx0ID8gMSA6IDA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgICAgIHJldCA9IHJlc3VsdDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzU5ODM6CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzUzNjg6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFdlYkdMQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0ID0gcmVzdWx0Lm5hbWUgfCAwCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODApOwogICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgwKTsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiSW50ZWdlcjY0IjoKICAgICAgICAgICAgICAgIHRlbXBJNjQgPSBbcmV0ID4+PiAwLCAodGVtcERvdWJsZSA9IHJldCwgK01hdGhfYWJzKHRlbXBEb3VibGUpID49IDEgPyB0ZW1wRG91YmxlID4gMCA/IChNYXRoX21pbigrTWF0aF9mbG9vcih0ZW1wRG91YmxlIC8gNDI5NDk2NzI5NiksIDQyOTQ5NjcyOTUpIHwgMCkgPj4+IDAgOiB+fitNYXRoX2NlaWwoKHRlbXBEb3VibGUgLSArKH5+dGVtcERvdWJsZSA+Pj4gMCkpIC8gNDI5NDk2NzI5NikgPj4+IDAgOiAwKV0sIEhFQVAzMltkYXRhID4+IDJdID0gdGVtcEk2NFswXSwgSEVBUDMyW2RhdGEgKyA0ID4+IDJdID0gdGVtcEk2NFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJJbnRlZ2VyIjoKICAgICAgICAgICAgICAgIEhFQVAzMltkYXRhID4+IDJdID0gcmV0OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIkZsb2F0IjoKICAgICAgICAgICAgICAgIEhFQVBGMzJbZGF0YSA+PiAyXSA9IHJldDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJCb29sZWFuIjoKICAgICAgICAgICAgICAgIEhFQVA4W2RhdGEgPj4gMF0gPSByZXQgPyAxIDogMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgdGhyb3cgImludGVybmFsIGVtc2NyaXB0ZW5XZWJHTEdldEluZGV4ZWQoKSBlcnJvciwgYmFkIHR5cGU6ICIgKyB0eXBlCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldEludGVnZXJpX3YodGFyZ2V0LCBpbmRleCwgZGF0YSkgewogICAgICAgIGVtc2NyaXB0ZW5XZWJHTEdldEluZGV4ZWQodGFyZ2V0LCBpbmRleCwgZGF0YSwgIkludGVnZXIiKQogICAgfQoKICAgIGZ1bmN0aW9uIGVtc2NyaXB0ZW5XZWJHTEdldChuYW1lXywgcCwgdHlwZSkgewogICAgICAgIGlmICghcCkgewogICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgxKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIHZhciByZXQgPSB1bmRlZmluZWQ7CiAgICAgICAgc3dpdGNoIChuYW1lXykgewogICAgICAgICAgICBjYXNlIDM2MzQ2OgogICAgICAgICAgICAgICAgcmV0ID0gMTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM2MzQ0OgogICAgICAgICAgICAgICAgaWYgKHR5cGUgIT09ICJJbnRlZ2VyIiAmJiB0eXBlICE9PSAiSW50ZWdlcjY0IikgewogICAgICAgICAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgMzQ4MTQ6CiAgICAgICAgICAgIGNhc2UgMzYzNDU6CiAgICAgICAgICAgICAgICByZXQgPSAwOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzQ0NjY6CiAgICAgICAgICAgICAgICB2YXIgZm9ybWF0cyA9IEdMY3R4LmdldFBhcmFtZXRlcigzNDQ2Nyk7CiAgICAgICAgICAgICAgICByZXQgPSBmb3JtYXRzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDMzMzA5OgogICAgICAgICAgICAgICAgaWYgKEdMY3R4LmNhbnZhcy5HTGN0eE9iamVjdC52ZXJzaW9uIDwgMikgewogICAgICAgICAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODIpOwogICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGV4dHMgPSBHTGN0eC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CiAgICAgICAgICAgICAgICByZXQgPSAyICogZXh0cy5sZW5ndGg7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzMzMwNzoKICAgICAgICAgICAgY2FzZSAzMzMwODoKICAgICAgICAgICAgICAgIGlmIChHTGN0eC5jYW52YXMuR0xjdHhPYmplY3QudmVyc2lvbiA8IDIpIHsKICAgICAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgwKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldCA9IG5hbWVfID09IDMzMzA3ID8gMyA6IDA7CiAgICAgICAgICAgICAgICBicmVhawogICAgICAgIH0KICAgICAgICBpZiAocmV0ID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdmFyIHJlc3VsdCA9IEdMY3R4LmdldFBhcmFtZXRlcihuYW1lXyk7CiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHJlc3VsdCkgewogICAgICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgICAgICAgICByZXQgPSByZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgICAgICAgICAgICByZXQgPSByZXN1bHQgPyAxIDogMDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZV8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzQ5NjQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM1NzI1OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzNDk2NToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzYwMDY6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM2MDA3OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzMjg3MzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzQyMjk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM1MDk3OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzNjM4OToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzQwNjg6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSB8fCByZXN1bHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheSB8fCByZXN1bHQgaW5zdGFuY2VvZiBJbnQzMkFycmF5IHx8IHJlc3VsdCBpbnN0YW5jZW9mIEFycmF5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJJbnRlZ2VyIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3AgKyBpICogNCA+PiAyXSA9IHJlc3VsdFtpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiRmxvYXQiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRUFQRjMyW3AgKyBpICogNCA+PiAyXSA9IHJlc3VsdFtpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiQm9vbGVhbiI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFQVA4W3AgKyBpID4+IDBdID0gcmVzdWx0W2ldID8gMSA6IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93ICJpbnRlcm5hbCBnbEdldCBlcnJvciwgYmFkIHR5cGU6ICIgKyB0eXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBXZWJHTEJ1ZmZlciB8fCByZXN1bHQgaW5zdGFuY2VvZiBXZWJHTFByb2dyYW0gfHwgcmVzdWx0IGluc3RhbmNlb2YgV2ViR0xGcmFtZWJ1ZmZlciB8fCByZXN1bHQgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmJ1ZmZlciB8fCByZXN1bHQgaW5zdGFuY2VvZiBXZWJHTFF1ZXJ5IHx8IHJlc3VsdCBpbnN0YW5jZW9mIFdlYkdMU2FtcGxlciB8fCByZXN1bHQgaW5zdGFuY2VvZiBXZWJHTFN5bmMgfHwgcmVzdWx0IGluc3RhbmNlb2YgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayB8fCByZXN1bHQgaW5zdGFuY2VvZiBXZWJHTFZlcnRleEFycmF5T2JqZWN0IHx8IHJlc3VsdCBpbnN0YW5jZW9mIFdlYkdMVGV4dHVyZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXQgPSByZXN1bHQubmFtZSB8IDAKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgwKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiSW50ZWdlcjY0IjoKICAgICAgICAgICAgICAgIHRlbXBJNjQgPSBbcmV0ID4+PiAwLCAodGVtcERvdWJsZSA9IHJldCwgK01hdGhfYWJzKHRlbXBEb3VibGUpID49IDEgPyB0ZW1wRG91YmxlID4gMCA/IChNYXRoX21pbigrTWF0aF9mbG9vcih0ZW1wRG91YmxlIC8gNDI5NDk2NzI5NiksIDQyOTQ5NjcyOTUpIHwgMCkgPj4+IDAgOiB+fitNYXRoX2NlaWwoKHRlbXBEb3VibGUgLSArKH5+dGVtcERvdWJsZSA+Pj4gMCkpIC8gNDI5NDk2NzI5NikgPj4+IDAgOiAwKV0sIEhFQVAzMltwID4+IDJdID0gdGVtcEk2NFswXSwgSEVBUDMyW3AgKyA0ID4+IDJdID0gdGVtcEk2NFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJJbnRlZ2VyIjoKICAgICAgICAgICAgICAgIEhFQVAzMltwID4+IDJdID0gcmV0OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIkZsb2F0IjoKICAgICAgICAgICAgICAgIEhFQVBGMzJbcCA+PiAyXSA9IHJldDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJCb29sZWFuIjoKICAgICAgICAgICAgICAgIEhFQVA4W3AgPj4gMF0gPSByZXQgPyAxIDogMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgdGhyb3cgImludGVybmFsIGdsR2V0IGVycm9yLCBiYWQgdHlwZTogIiArIHR5cGUKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsR2V0SW50ZWdlcnYobmFtZV8sIHApIHsKICAgICAgICBlbXNjcmlwdGVuV2ViR0xHZXQobmFtZV8sIHAsICJJbnRlZ2VyIikKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZXRQcm9ncmFtQmluYXJ5KHByb2dyYW0sIGJ1ZlNpemUsIGxlbmd0aCwgYmluYXJ5Rm9ybWF0LCBiaW5hcnkpIHsKICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgyKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldFByb2dyYW1JbmZvTG9nKHByb2dyYW0sIG1heExlbmd0aCwgbGVuZ3RoLCBpbmZvTG9nKSB7CiAgICAgICAgdmFyIGxvZyA9IEdMY3R4LmdldFByb2dyYW1JbmZvTG9nKEdMLnByb2dyYW1zW3Byb2dyYW1dKTsKICAgICAgICBpZiAobG9nID09PSBudWxsKSBsb2cgPSAiKHVua25vd24gZXJyb3IpIjsKICAgICAgICBpZiAobWF4TGVuZ3RoID4gMCAmJiBpbmZvTG9nKSB7CiAgICAgICAgICAgIHZhciBudW1CeXRlc1dyaXR0ZW5FeGNsTnVsbCA9IHN0cmluZ1RvVVRGOChsb2csIGluZm9Mb2csIG1heExlbmd0aCk7CiAgICAgICAgICAgIGlmIChsZW5ndGgpIEhFQVAzMltsZW5ndGggPj4gMl0gPSBudW1CeXRlc1dyaXR0ZW5FeGNsTnVsbAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChsZW5ndGgpIEhFQVAzMltsZW5ndGggPj4gMl0gPSAwCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldFByb2dyYW1pdihwcm9ncmFtLCBwbmFtZSwgcCkgewogICAgICAgIGlmICghcCkgewogICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgxKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIGlmIChwcm9ncmFtID49IEdMLmNvdW50ZXIpIHsKICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MSk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICB2YXIgcHRhYmxlID0gR0wucHJvZ3JhbUluZm9zW3Byb2dyYW1dOwogICAgICAgIGlmICghcHRhYmxlKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODIpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgaWYgKHBuYW1lID09IDM1NzE2KSB7CiAgICAgICAgICAgIHZhciBsb2cgPSBHTGN0eC5nZXRQcm9ncmFtSW5mb0xvZyhHTC5wcm9ncmFtc1twcm9ncmFtXSk7CiAgICAgICAgICAgIGlmIChsb2cgPT09IG51bGwpIGxvZyA9ICIodW5rbm93biBlcnJvcikiOwogICAgICAgICAgICBIRUFQMzJbcCA+PiAyXSA9IGxvZy5sZW5ndGggKyAxCiAgICAgICAgfSBlbHNlIGlmIChwbmFtZSA9PSAzNTcxOSkgewogICAgICAgICAgICBIRUFQMzJbcCA+PiAyXSA9IHB0YWJsZS5tYXhVbmlmb3JtTGVuZ3RoCiAgICAgICAgfSBlbHNlIGlmIChwbmFtZSA9PSAzNTcyMikgewogICAgICAgICAgICBpZiAocHRhYmxlLm1heEF0dHJpYnV0ZUxlbmd0aCA9PSAtMSkgewogICAgICAgICAgICAgICAgcHJvZ3JhbSA9IEdMLnByb2dyYW1zW3Byb2dyYW1dOwogICAgICAgICAgICAgICAgdmFyIG51bUF0dHJpYnMgPSBHTGN0eC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIEdMY3R4LkFDVElWRV9BVFRSSUJVVEVTKTsKICAgICAgICAgICAgICAgIHB0YWJsZS5tYXhBdHRyaWJ1dGVMZW5ndGggPSAwOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1BdHRyaWJzOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgYWN0aXZlQXR0cmliID0gR0xjdHguZ2V0QWN0aXZlQXR0cmliKHByb2dyYW0sIGkpOwogICAgICAgICAgICAgICAgICAgIHB0YWJsZS5tYXhBdHRyaWJ1dGVMZW5ndGggPSBNYXRoLm1heChwdGFibGUubWF4QXR0cmlidXRlTGVuZ3RoLCBhY3RpdmVBdHRyaWIubmFtZS5sZW5ndGggKyAxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEhFQVAzMltwID4+IDJdID0gcHRhYmxlLm1heEF0dHJpYnV0ZUxlbmd0aAogICAgICAgIH0gZWxzZSBpZiAocG5hbWUgPT0gMzUzODEpIHsKICAgICAgICAgICAgaWYgKHB0YWJsZS5tYXhVbmlmb3JtQmxvY2tOYW1lTGVuZ3RoID09IC0xKSB7CiAgICAgICAgICAgICAgICBwcm9ncmFtID0gR0wucHJvZ3JhbXNbcHJvZ3JhbV07CiAgICAgICAgICAgICAgICB2YXIgbnVtQmxvY2tzID0gR0xjdHguZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBHTGN0eC5BQ1RJVkVfVU5JRk9STV9CTE9DS1MpOwogICAgICAgICAgICAgICAgcHRhYmxlLm1heFVuaWZvcm1CbG9ja05hbWVMZW5ndGggPSAwOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1CbG9ja3M7ICsraSkgewogICAgICAgICAgICAgICAgICAgIHZhciBhY3RpdmVCbG9ja05hbWUgPSBHTGN0eC5nZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKHByb2dyYW0sIGkpOwogICAgICAgICAgICAgICAgICAgIHB0YWJsZS5tYXhVbmlmb3JtQmxvY2tOYW1lTGVuZ3RoID0gTWF0aC5tYXgocHRhYmxlLm1heFVuaWZvcm1CbG9ja05hbWVMZW5ndGgsIGFjdGl2ZUJsb2NrTmFtZS5sZW5ndGggKyAxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEhFQVAzMltwID4+IDJdID0gcHRhYmxlLm1heFVuaWZvcm1CbG9ja05hbWVMZW5ndGgKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBIRUFQMzJbcCA+PiAyXSA9IEdMY3R4LmdldFByb2dyYW1QYXJhbWV0ZXIoR0wucHJvZ3JhbXNbcHJvZ3JhbV0sIHBuYW1lKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCBwYXJhbXMpIHsKICAgICAgICBpZiAoIXBhcmFtcykgewogICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgxKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIEhFQVAzMltwYXJhbXMgPj4gMl0gPSBHTGN0eC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZXRTaGFkZXJJbmZvTG9nKHNoYWRlciwgbWF4TGVuZ3RoLCBsZW5ndGgsIGluZm9Mb2cpIHsKICAgICAgICB2YXIgbG9nID0gR0xjdHguZ2V0U2hhZGVySW5mb0xvZyhHTC5zaGFkZXJzW3NoYWRlcl0pOwogICAgICAgIGlmIChsb2cgPT09IG51bGwpIGxvZyA9ICIodW5rbm93biBlcnJvcikiOwogICAgICAgIGlmIChtYXhMZW5ndGggPiAwICYmIGluZm9Mb2cpIHsKICAgICAgICAgICAgdmFyIG51bUJ5dGVzV3JpdHRlbkV4Y2xOdWxsID0gc3RyaW5nVG9VVEY4KGxvZywgaW5mb0xvZywgbWF4TGVuZ3RoKTsKICAgICAgICAgICAgaWYgKGxlbmd0aCkgSEVBUDMyW2xlbmd0aCA+PiAyXSA9IG51bUJ5dGVzV3JpdHRlbkV4Y2xOdWxsCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGxlbmd0aCkgSEVBUDMyW2xlbmd0aCA+PiAyXSA9IDAKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KHNoYWRlclR5cGUsIHByZWNpc2lvblR5cGUsIHJhbmdlLCBwcmVjaXNpb24pIHsKICAgICAgICB2YXIgcmVzdWx0ID0gR0xjdHguZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KHNoYWRlclR5cGUsIHByZWNpc2lvblR5cGUpOwogICAgICAgIEhFQVAzMltyYW5nZSA+PiAyXSA9IHJlc3VsdC5yYW5nZU1pbjsKICAgICAgICBIRUFQMzJbcmFuZ2UgKyA0ID4+IDJdID0gcmVzdWx0LnJhbmdlTWF4OwogICAgICAgIEhFQVAzMltwcmVjaXNpb24gPj4gMl0gPSByZXN1bHQucHJlY2lzaW9uCiAgICB9CgogICAgZnVuY3Rpb24gX2dsR2V0U2hhZGVyU291cmNlKHNoYWRlciwgYnVmU2l6ZSwgbGVuZ3RoLCBzb3VyY2UpIHsKICAgICAgICB2YXIgcmVzdWx0ID0gR0xjdHguZ2V0U2hhZGVyU291cmNlKEdMLnNoYWRlcnNbc2hhZGVyXSk7CiAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybjsKICAgICAgICBpZiAoYnVmU2l6ZSA+IDAgJiYgc291cmNlKSB7CiAgICAgICAgICAgIHZhciBudW1CeXRlc1dyaXR0ZW5FeGNsTnVsbCA9IHN0cmluZ1RvVVRGOChyZXN1bHQsIHNvdXJjZSwgYnVmU2l6ZSk7CiAgICAgICAgICAgIGlmIChsZW5ndGgpIEhFQVAzMltsZW5ndGggPj4gMl0gPSBudW1CeXRlc1dyaXR0ZW5FeGNsTnVsbAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChsZW5ndGgpIEhFQVAzMltsZW5ndGggPj4gMl0gPSAwCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldFNoYWRlcml2KHNoYWRlciwgcG5hbWUsIHApIHsKICAgICAgICBpZiAoIXApIHsKICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MSk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBpZiAocG5hbWUgPT0gMzU3MTYpIHsKICAgICAgICAgICAgdmFyIGxvZyA9IEdMY3R4LmdldFNoYWRlckluZm9Mb2coR0wuc2hhZGVyc1tzaGFkZXJdKTsKICAgICAgICAgICAgaWYgKGxvZyA9PT0gbnVsbCkgbG9nID0gIih1bmtub3duIGVycm9yKSI7CiAgICAgICAgICAgIEhFQVAzMltwID4+IDJdID0gbG9nLmxlbmd0aCArIDEKICAgICAgICB9IGVsc2UgaWYgKHBuYW1lID09IDM1NzIwKSB7CiAgICAgICAgICAgIHZhciBzb3VyY2UgPSBHTGN0eC5nZXRTaGFkZXJTb3VyY2UoR0wuc2hhZGVyc1tzaGFkZXJdKTsKICAgICAgICAgICAgdmFyIHNvdXJjZUxlbmd0aCA9IHNvdXJjZSA9PT0gbnVsbCB8fCBzb3VyY2UubGVuZ3RoID09IDAgPyAwIDogc291cmNlLmxlbmd0aCArIDE7CiAgICAgICAgICAgIEhFQVAzMltwID4+IDJdID0gc291cmNlTGVuZ3RoCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgSEVBUDMyW3AgPj4gMl0gPSBHTGN0eC5nZXRTaGFkZXJQYXJhbWV0ZXIoR0wuc2hhZGVyc1tzaGFkZXJdLCBwbmFtZSkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsR2V0U3RyaW5nKG5hbWVfKSB7CiAgICAgICAgaWYgKEdMLnN0cmluZ0NhY2hlW25hbWVfXSkgcmV0dXJuIEdMLnN0cmluZ0NhY2hlW25hbWVfXTsKICAgICAgICB2YXIgcmV0OwogICAgICAgIHN3aXRjaCAobmFtZV8pIHsKICAgICAgICAgICAgY2FzZSA3OTM2OgogICAgICAgICAgICBjYXNlIDc5Mzc6CiAgICAgICAgICAgIGNhc2UgMzc0NDU6CiAgICAgICAgICAgIGNhc2UgMzc0NDY6CiAgICAgICAgICAgICAgICByZXQgPSBhbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoR0xjdHguZ2V0UGFyYW1ldGVyKG5hbWVfKSksICJpOCIsIEFMTE9DX05PUk1BTCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA3OTM4OgogICAgICAgICAgICAgICAgdmFyIGdsVmVyc2lvbiA9IEdMY3R4LmdldFBhcmFtZXRlcihHTGN0eC5WRVJTSU9OKTsKICAgICAgICAgICAgICAgIGlmIChHTGN0eC5jYW52YXMuR0xjdHhPYmplY3QudmVyc2lvbiA+PSAyKSBnbFZlcnNpb24gPSAiT3BlbkdMIEVTIDMuMCAoIiArIGdsVmVyc2lvbiArICIpIjsKICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGdsVmVyc2lvbiA9ICJPcGVuR0wgRVMgMi4wICgiICsgZ2xWZXJzaW9uICsgIikiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXQgPSBhbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoZ2xWZXJzaW9uKSwgImk4IiwgQUxMT0NfTk9STUFMKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDc5Mzk6CiAgICAgICAgICAgICAgICB2YXIgZXh0cyA9IEdMY3R4LmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKTsKICAgICAgICAgICAgICAgIHZhciBnbF9leHRzID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4dHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICBnbF9leHRzLnB1c2goZXh0c1tpXSk7CiAgICAgICAgICAgICAgICAgICAgZ2xfZXh0cy5wdXNoKCJHTF8iICsgZXh0c1tpXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldCA9IGFsbG9jYXRlKGludEFycmF5RnJvbVN0cmluZyhnbF9leHRzLmpvaW4oIiAiKSksICJpOCIsIEFMTE9DX05PUk1BTCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzNTcyNDoKICAgICAgICAgICAgICAgIHZhciBnbHNsVmVyc2lvbiA9IEdMY3R4LmdldFBhcmFtZXRlcihHTGN0eC5TSEFESU5HX0xBTkdVQUdFX1ZFUlNJT04pOwogICAgICAgICAgICAgICAgdmFyIHZlcl9yZSA9IC9eV2ViR0wgR0xTTCBFUyAoWzAtOV1cLlswLTldWzAtOV0/KSg/OiR8IC4qKS87CiAgICAgICAgICAgICAgICB2YXIgdmVyX251bSA9IGdsc2xWZXJzaW9uLm1hdGNoKHZlcl9yZSk7CiAgICAgICAgICAgICAgICBpZiAodmVyX251bSAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIGlmICh2ZXJfbnVtWzFdLmxlbmd0aCA9PSAzKSB2ZXJfbnVtWzFdID0gdmVyX251bVsxXSArICIwIjsKICAgICAgICAgICAgICAgICAgICBnbHNsVmVyc2lvbiA9ICJPcGVuR0wgRVMgR0xTTCBFUyAiICsgdmVyX251bVsxXSArICIgKCIgKyBnbHNsVmVyc2lvbiArICIpIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0ID0gYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5nKGdsc2xWZXJzaW9uKSwgImk4IiwgQUxMT0NfTk9STUFMKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MCk7CiAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0KICAgICAgICBHTC5zdHJpbmdDYWNoZVtuYW1lX10gPSByZXQ7CiAgICAgICAgcmV0dXJuIHJldAogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldFN0cmluZ2kobmFtZSwgaW5kZXgpIHsKICAgICAgICBpZiAoR0xjdHguY2FudmFzLkdMY3R4T2JqZWN0LnZlcnNpb24gPCAyKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODIpOwogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0KICAgICAgICB2YXIgc3RyaW5naUNhY2hlID0gR0wuc3RyaW5naUNhY2hlW25hbWVdOwogICAgICAgIGlmIChzdHJpbmdpQ2FjaGUpIHsKICAgICAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBzdHJpbmdpQ2FjaGUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgxKTsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHN0cmluZ2lDYWNoZVtpbmRleF0KICAgICAgICB9CiAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgIGNhc2UgNzkzOToKICAgICAgICAgICAgICAgIHZhciBleHRzID0gR0xjdHguZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpOwogICAgICAgICAgICAgICAgdmFyIGdsX2V4dHMgPSBbXTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXh0cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgICAgIGdsX2V4dHMucHVzaChhbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoZXh0c1tpXSksICJpOCIsIEFMTE9DX05PUk1BTCkpOwogICAgICAgICAgICAgICAgICAgIGdsX2V4dHMucHVzaChhbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoIkdMXyIgKyBleHRzW2ldKSwgImk4IiwgQUxMT0NfTk9STUFMKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHN0cmluZ2lDYWNoZSA9IEdMLnN0cmluZ2lDYWNoZVtuYW1lXSA9IGdsX2V4dHM7CiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHN0cmluZ2lDYWNoZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgxKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZ2lDYWNoZVtpbmRleF07CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgwKTsKICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldFRleFBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUsIHBhcmFtcykgewogICAgICAgIGlmICghcGFyYW1zKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODEpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgSEVBUDMyW3BhcmFtcyA+PiAyXSA9IEdMY3R4LmdldFRleFBhcmFtZXRlcih0YXJnZXQsIHBuYW1lKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldFVuaWZvcm1CbG9ja0luZGV4KHByb2dyYW0sIHVuaWZvcm1CbG9ja05hbWUpIHsKICAgICAgICBwcm9ncmFtID0gR0wucHJvZ3JhbXNbcHJvZ3JhbV07CiAgICAgICAgdW5pZm9ybUJsb2NrTmFtZSA9IFBvaW50ZXJfc3RyaW5naWZ5KHVuaWZvcm1CbG9ja05hbWUpOwogICAgICAgIHJldHVybiBHTGN0eFsiZ2V0VW5pZm9ybUJsb2NrSW5kZXgiXShwcm9ncmFtLCB1bmlmb3JtQmxvY2tOYW1lKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbEdldFVuaWZvcm1JbmRpY2VzKHByb2dyYW0sIHVuaWZvcm1Db3VudCwgdW5pZm9ybU5hbWVzLCB1bmlmb3JtSW5kaWNlcykgewogICAgICAgIGlmICghdW5pZm9ybUluZGljZXMpIHsKICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MSk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBpZiAodW5pZm9ybUNvdW50ID4gMCAmJiAodW5pZm9ybU5hbWVzID09IDAgfHwgdW5pZm9ybUluZGljZXMgPT0gMCkpIHsKICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MSk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBwcm9ncmFtID0gR0wucHJvZ3JhbXNbcHJvZ3JhbV07CiAgICAgICAgdmFyIG5hbWVzID0gW107CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1bmlmb3JtQ291bnQ7IGkrKykgbmFtZXMucHVzaChQb2ludGVyX3N0cmluZ2lmeShIRUFQMzJbdW5pZm9ybU5hbWVzICsgaSAqIDQgPj4gMl0pKTsKICAgICAgICB2YXIgcmVzdWx0ID0gR0xjdHhbImdldFVuaWZvcm1JbmRpY2VzIl0ocHJvZ3JhbSwgbmFtZXMpOwogICAgICAgIGlmICghcmVzdWx0KSByZXR1cm47CiAgICAgICAgdmFyIGxlbiA9IHJlc3VsdC5sZW5ndGg7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgICBIRUFQMzJbdW5pZm9ybUluZGljZXMgKyBpICogNCA+PiAyXSA9IHJlc3VsdFtpXQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgbmFtZSkgewogICAgICAgIG5hbWUgPSBQb2ludGVyX3N0cmluZ2lmeShuYW1lKTsKICAgICAgICB2YXIgYXJyYXlPZmZzZXQgPSAwOwogICAgICAgIGlmIChuYW1lLmluZGV4T2YoIl0iLCBuYW1lLmxlbmd0aCAtIDEpICE9PSAtMSkgewogICAgICAgICAgICB2YXIgbHMgPSBuYW1lLmxhc3RJbmRleE9mKCJbIik7CiAgICAgICAgICAgIHZhciBhcnJheUluZGV4ID0gbmFtZS5zbGljZShscyArIDEsIC0xKTsKICAgICAgICAgICAgaWYgKGFycmF5SW5kZXgubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgYXJyYXlPZmZzZXQgPSBwYXJzZUludChhcnJheUluZGV4KTsKICAgICAgICAgICAgICAgIGlmIChhcnJheU9mZnNldCA8IDApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBuYW1lID0gbmFtZS5zbGljZSgwLCBscykKICAgICAgICB9CiAgICAgICAgdmFyIHB0YWJsZSA9IEdMLnByb2dyYW1JbmZvc1twcm9ncmFtXTsKICAgICAgICBpZiAoIXB0YWJsZSkgewogICAgICAgICAgICByZXR1cm4gLTEKICAgICAgICB9CiAgICAgICAgdmFyIHV0YWJsZSA9IHB0YWJsZS51bmlmb3JtczsKICAgICAgICB2YXIgdW5pZm9ybUluZm8gPSB1dGFibGVbbmFtZV07CiAgICAgICAgaWYgKHVuaWZvcm1JbmZvICYmIGFycmF5T2Zmc2V0IDwgdW5pZm9ybUluZm9bMF0pIHsKICAgICAgICAgICAgcmV0dXJuIHVuaWZvcm1JbmZvWzFdICsgYXJyYXlPZmZzZXQKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gLTEKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZW1zY3JpcHRlbldlYkdMR2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbiwgcGFyYW1zLCB0eXBlKSB7CiAgICAgICAgaWYgKCFwYXJhbXMpIHsKICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MSk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICB2YXIgZGF0YSA9IEdMY3R4LmdldFVuaWZvcm0oR0wucHJvZ3JhbXNbcHJvZ3JhbV0sIEdMLnVuaWZvcm1zW2xvY2F0aW9uXSk7CiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09ICJudW1iZXIiIHx8IHR5cGVvZiBkYXRhID09ICJib29sZWFuIikgewogICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIkludGVnZXIiOgogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwYXJhbXMgPj4gMl0gPSBkYXRhOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiRmxvYXQiOgogICAgICAgICAgICAgICAgICAgIEhFQVBGMzJbcGFyYW1zID4+IDJdID0gZGF0YTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgImludGVybmFsIGVtc2NyaXB0ZW5XZWJHTEdldFVuaWZvcm0oKSBlcnJvciwgYmFkIHR5cGU6ICIgKyB0eXBlCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgIkludGVnZXIiOgogICAgICAgICAgICAgICAgICAgICAgICBIRUFQMzJbcGFyYW1zICsgaSAqIDQgPj4gMl0gPSBkYXRhW2ldOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJGbG9hdCI6CiAgICAgICAgICAgICAgICAgICAgICAgIEhFQVBGMzJbcGFyYW1zICsgaSAqIDQgPj4gMl0gPSBkYXRhW2ldOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyAiaW50ZXJuYWwgZW1zY3JpcHRlbldlYkdMR2V0VW5pZm9ybSgpIGVycm9yLCBiYWQgdHlwZTogIiArIHR5cGUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xHZXRVbmlmb3JtaXYocHJvZ3JhbSwgbG9jYXRpb24sIHBhcmFtcykgewogICAgICAgIGVtc2NyaXB0ZW5XZWJHTEdldFVuaWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24sIHBhcmFtcywgIkludGVnZXIiKQogICAgfQoKICAgIGZ1bmN0aW9uIGVtc2NyaXB0ZW5XZWJHTEdldFZlcnRleEF0dHJpYihpbmRleCwgcG5hbWUsIHBhcmFtcywgdHlwZSkgewogICAgICAgIGlmICghcGFyYW1zKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODEpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgdmFyIGRhdGEgPSBHTGN0eC5nZXRWZXJ0ZXhBdHRyaWIoaW5kZXgsIHBuYW1lKTsKICAgICAgICBpZiAocG5hbWUgPT0gMzQ5NzUpIHsKICAgICAgICAgICAgSEVBUDMyW3BhcmFtcyA+PiAyXSA9IGRhdGFbIm5hbWUiXQogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEgPT0gIm51bWJlciIgfHwgdHlwZW9mIGRhdGEgPT0gImJvb2xlYW4iKSB7CiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiSW50ZWdlciI6CiAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3BhcmFtcyA+PiAyXSA9IGRhdGE7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJGbG9hdCI6CiAgICAgICAgICAgICAgICAgICAgSEVBUEYzMltwYXJhbXMgPj4gMl0gPSBkYXRhOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiRmxvYXRUb0ludGVnZXIiOgogICAgICAgICAgICAgICAgICAgIEhFQVAzMltwYXJhbXMgPj4gMl0gPSBNYXRoLmZyb3VuZChkYXRhKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgImludGVybmFsIGVtc2NyaXB0ZW5XZWJHTEdldFZlcnRleEF0dHJpYigpIGVycm9yLCBiYWQgdHlwZTogIiArIHR5cGUKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiSW50ZWdlciI6CiAgICAgICAgICAgICAgICAgICAgICAgIEhFQVAzMltwYXJhbXMgKyBpICogNCA+PiAyXSA9IGRhdGFbaV07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgIkZsb2F0IjoKICAgICAgICAgICAgICAgICAgICAgICAgSEVBUEYzMltwYXJhbXMgKyBpICogNCA+PiAyXSA9IGRhdGFbaV07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgIkZsb2F0VG9JbnRlZ2VyIjoKICAgICAgICAgICAgICAgICAgICAgICAgSEVBUDMyW3BhcmFtcyArIGkgKiA0ID4+IDJdID0gTWF0aC5mcm91bmQoZGF0YVtpXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93ICJpbnRlcm5hbCBlbXNjcmlwdGVuV2ViR0xHZXRWZXJ0ZXhBdHRyaWIoKSBlcnJvciwgYmFkIHR5cGU6ICIgKyB0eXBlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsR2V0VmVydGV4QXR0cmliaXYoaW5kZXgsIHBuYW1lLCBwYXJhbXMpIHsKICAgICAgICBlbXNjcmlwdGVuV2ViR0xHZXRWZXJ0ZXhBdHRyaWIoaW5kZXgsIHBuYW1lLCBwYXJhbXMsICJGbG9hdFRvSW50ZWdlciIpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsSW52YWxpZGF0ZUZyYW1lYnVmZmVyKHRhcmdldCwgbnVtQXR0YWNobWVudHMsIGF0dGFjaG1lbnRzKSB7CiAgICAgICAgdmFyIGxpc3QgPSBHTC50ZW1wRml4ZWRMZW5ndGhBcnJheVtudW1BdHRhY2htZW50c107CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1BdHRhY2htZW50czsgaSsrKSB7CiAgICAgICAgICAgIGxpc3RbaV0gPSBIRUFQMzJbYXR0YWNobWVudHMgKyBpICogNCA+PiAyXQogICAgICAgIH0KICAgICAgICBHTGN0eFsiaW52YWxpZGF0ZUZyYW1lYnVmZmVyIl0odGFyZ2V0LCBsaXN0KQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbElzRW5hYmxlZCh4MCkgewogICAgICAgIHJldHVybiBHTGN0eFsiaXNFbmFibGVkIl0oeDApCiAgICB9CgogICAgZnVuY3Rpb24gX2dsSXNWZXJ0ZXhBcnJheShhcnJheSkgewogICAgICAgIHZhciB2YW8gPSBHTC52YW9zW2FycmF5XTsKICAgICAgICBpZiAoIXZhbykgcmV0dXJuIDA7CiAgICAgICAgcmV0dXJuIEdMY3R4WyJpc1ZlcnRleEFycmF5Il0odmFvKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbExpbmtQcm9ncmFtKHByb2dyYW0pIHsKICAgICAgICBHTGN0eC5saW5rUHJvZ3JhbShHTC5wcm9ncmFtc1twcm9ncmFtXSk7CiAgICAgICAgR0wucHJvZ3JhbUluZm9zW3Byb2dyYW1dID0gbnVsbDsKICAgICAgICBHTC5wb3B1bGF0ZVVuaWZvcm1UYWJsZShwcm9ncmFtKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbE1hcEJ1ZmZlclJhbmdlKHRhcmdldCwgb2Zmc2V0LCBsZW5ndGgsIGFjY2VzcykgewogICAgICAgIGlmIChhY2Nlc3MgIT0gMjYgJiYgYWNjZXNzICE9IDEwKSB7CiAgICAgICAgICAgIE1vZHVsZS5wcmludEVycigiZ2xNYXBCdWZmZXJSYW5nZSBpcyBvbmx5IHN1cHBvcnRlZCB3aGVuIGFjY2VzcyBpcyBNQVBfV1JJVEV8SU5WQUxJREFURV9CVUZGRVIiKTsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9CiAgICAgICAgaWYgKCFlbXNjcmlwdGVuV2ViR0xWYWxpZGF0ZU1hcEJ1ZmZlclRhcmdldCh0YXJnZXQpKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODApOwogICAgICAgICAgICBNb2R1bGUucHJpbnRFcnIoIkdMX0lOVkFMSURfRU5VTSBpbiBnbE1hcEJ1ZmZlclJhbmdlIik7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfQogICAgICAgIHZhciBtZW0gPSBfbWFsbG9jKGxlbmd0aCk7CiAgICAgICAgaWYgKCFtZW0pIHJldHVybiAwOwogICAgICAgIEdMLm1hcHBlZEJ1ZmZlcnNbZW1zY3JpcHRlbldlYkdMR2V0QnVmZmVyQmluZGluZyh0YXJnZXQpXSA9IHsKICAgICAgICAgICAgb2Zmc2V0OiBvZmZzZXQsCiAgICAgICAgICAgIGxlbmd0aDogbGVuZ3RoLAogICAgICAgICAgICBtZW06IG1lbSwKICAgICAgICAgICAgYWNjZXNzOiBhY2Nlc3MKICAgICAgICB9OwogICAgICAgIHJldHVybiBtZW0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xQaXhlbFN0b3JlaShwbmFtZSwgcGFyYW0pIHsKICAgICAgICBpZiAocG5hbWUgPT0gMzMzMykgewogICAgICAgICAgICBHTC5wYWNrQWxpZ25tZW50ID0gcGFyYW0KICAgICAgICB9IGVsc2UgaWYgKHBuYW1lID09IDMzMTcpIHsKICAgICAgICAgICAgR0wudW5wYWNrQWxpZ25tZW50ID0gcGFyYW0KICAgICAgICB9CiAgICAgICAgR0xjdHgucGl4ZWxTdG9yZWkocG5hbWUsIHBhcmFtKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFBvbHlnb25PZmZzZXQoeDAsIHgxKSB7CiAgICAgICAgR0xjdHhbInBvbHlnb25PZmZzZXQiXSh4MCwgeDEpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsUHJvZ3JhbUJpbmFyeShwcm9ncmFtLCBiaW5hcnlGb3JtYXQsIGJpbmFyeSwgbGVuZ3RoKSB7CiAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xQcm9ncmFtUGFyYW1ldGVyaShwcm9ncmFtLCBwbmFtZSwgdmFsdWUpIHsKICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgwKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFJlYWRCdWZmZXIoeDApIHsKICAgICAgICBHTGN0eFsicmVhZEJ1ZmZlciJdKHgwKQogICAgfQoKICAgIGZ1bmN0aW9uIGVtc2NyaXB0ZW5XZWJHTENvbXB1dGVJbWFnZVNpemUod2lkdGgsIGhlaWdodCwgc2l6ZVBlclBpeGVsLCBhbGlnbm1lbnQpIHsKICAgICAgICBmdW5jdGlvbiByb3VuZGVkVG9OZXh0TXVsdGlwbGVPZih4LCB5KSB7CiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKCh4ICsgeSAtIDEpIC8geSkgKiB5CiAgICAgICAgfQogICAgICAgIHZhciBwbGFpblJvd1NpemUgPSB3aWR0aCAqIHNpemVQZXJQaXhlbDsKICAgICAgICB2YXIgYWxpZ25lZFJvd1NpemUgPSByb3VuZGVkVG9OZXh0TXVsdGlwbGVPZihwbGFpblJvd1NpemUsIGFsaWdubWVudCk7CiAgICAgICAgcmV0dXJuIGhlaWdodCA8PSAwID8gMCA6IChoZWlnaHQgLSAxKSAqIGFsaWduZWRSb3dTaXplICsgcGxhaW5Sb3dTaXplCiAgICB9CgogICAgZnVuY3Rpb24gZW1zY3JpcHRlbldlYkdMR2V0VGV4UGl4ZWxEYXRhKHR5cGUsIGZvcm1hdCwgd2lkdGgsIGhlaWdodCwgcGl4ZWxzLCBpbnRlcm5hbEZvcm1hdCkgewogICAgICAgIHZhciBzaXplUGVyUGl4ZWw7CiAgICAgICAgdmFyIG51bUNoYW5uZWxzOwogICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CiAgICAgICAgICAgIGNhc2UgNjQwNjoKICAgICAgICAgICAgY2FzZSA2NDA5OgogICAgICAgICAgICBjYXNlIDY0MDI6CiAgICAgICAgICAgIGNhc2UgNjQwMzoKICAgICAgICAgICAgY2FzZSAzNjI0NDoKICAgICAgICAgICAgICAgIG51bUNoYW5uZWxzID0gMTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDY0MTA6CiAgICAgICAgICAgIGNhc2UgMzMzMTk6CiAgICAgICAgICAgIGNhc2UgMzMzMjA6CiAgICAgICAgICAgICAgICBudW1DaGFubmVscyA9IDI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA2NDA3OgogICAgICAgICAgICBjYXNlIDM1OTA0OgogICAgICAgICAgICBjYXNlIDM2MjQ4OgogICAgICAgICAgICAgICAgbnVtQ2hhbm5lbHMgPSAzOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNjQwODoKICAgICAgICAgICAgY2FzZSAzNTkwNjoKICAgICAgICAgICAgY2FzZSAzNjI0OToKICAgICAgICAgICAgICAgIG51bUNoYW5uZWxzID0gNDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MCk7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgY2FzZSA1MTIxOgogICAgICAgICAgICBjYXNlIDUxMjA6CiAgICAgICAgICAgICAgICBzaXplUGVyUGl4ZWwgPSBudW1DaGFubmVscyAqIDE7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA1MTIzOgogICAgICAgICAgICBjYXNlIDM2MTkzOgogICAgICAgICAgICBjYXNlIDUxMzE6CiAgICAgICAgICAgIGNhc2UgNTEyMjoKICAgICAgICAgICAgICAgIHNpemVQZXJQaXhlbCA9IG51bUNoYW5uZWxzICogMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDUxMjU6CiAgICAgICAgICAgIGNhc2UgNTEyNjoKICAgICAgICAgICAgY2FzZSA1MTI0OgogICAgICAgICAgICAgICAgc2l6ZVBlclBpeGVsID0gbnVtQ2hhbm5lbHMgKiA0OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzQwNDI6CiAgICAgICAgICAgIGNhc2UgMzU5MDI6CiAgICAgICAgICAgIGNhc2UgMzM2NDA6CiAgICAgICAgICAgIGNhc2UgMzU4OTk6CiAgICAgICAgICAgIGNhc2UgMzQwNDI6CiAgICAgICAgICAgICAgICBzaXplUGVyUGl4ZWwgPSA0OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzM2MzU6CiAgICAgICAgICAgIGNhc2UgMzI4MTk6CiAgICAgICAgICAgIGNhc2UgMzI4MjA6CiAgICAgICAgICAgICAgICBzaXplUGVyUGl4ZWwgPSAyOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBHTC5yZWNvcmRFcnJvcigxMjgwKTsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgfQogICAgICAgIHZhciBieXRlcyA9IGVtc2NyaXB0ZW5XZWJHTENvbXB1dGVJbWFnZVNpemUod2lkdGgsIGhlaWdodCwgc2l6ZVBlclBpeGVsLCBHTC51bnBhY2tBbGlnbm1lbnQpOwogICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICBjYXNlIDUxMjA6CiAgICAgICAgICAgICAgICByZXR1cm4gSEVBUDguc3ViYXJyYXkocGl4ZWxzLCBwaXhlbHMgKyBieXRlcyk7CiAgICAgICAgICAgIGNhc2UgNTEyMToKICAgICAgICAgICAgICAgIHJldHVybiBIRUFQVTguc3ViYXJyYXkocGl4ZWxzLCBwaXhlbHMgKyBieXRlcyk7CiAgICAgICAgICAgIGNhc2UgNTEyMjoKICAgICAgICAgICAgICAgIHJldHVybiBIRUFQMTYuc3ViYXJyYXkocGl4ZWxzID4+IDEsIHBpeGVscyArIGJ5dGVzID4+IDEpOwogICAgICAgICAgICBjYXNlIDUxMjQ6CiAgICAgICAgICAgICAgICByZXR1cm4gSEVBUDMyLnN1YmFycmF5KHBpeGVscyA+PiAyLCBwaXhlbHMgKyBieXRlcyA+PiAyKTsKICAgICAgICAgICAgY2FzZSA1MTI2OgogICAgICAgICAgICAgICAgcmV0dXJuIEhFQVBGMzIuc3ViYXJyYXkocGl4ZWxzID4+IDIsIHBpeGVscyArIGJ5dGVzID4+IDIpOwogICAgICAgICAgICBjYXNlIDUxMjU6CiAgICAgICAgICAgIGNhc2UgMzQwNDI6CiAgICAgICAgICAgIGNhc2UgMzU5MDI6CiAgICAgICAgICAgIGNhc2UgMzM2NDA6CiAgICAgICAgICAgIGNhc2UgMzU4OTk6CiAgICAgICAgICAgIGNhc2UgMzQwNDI6CiAgICAgICAgICAgICAgICByZXR1cm4gSEVBUFUzMi5zdWJhcnJheShwaXhlbHMgPj4gMiwgcGl4ZWxzICsgYnl0ZXMgPj4gMik7CiAgICAgICAgICAgIGNhc2UgNTEyMzoKICAgICAgICAgICAgY2FzZSAzMzYzNToKICAgICAgICAgICAgY2FzZSAzMjgxOToKICAgICAgICAgICAgY2FzZSAzMjgyMDoKICAgICAgICAgICAgY2FzZSAzNjE5MzoKICAgICAgICAgICAgY2FzZSA1MTMxOgogICAgICAgICAgICAgICAgcmV0dXJuIEhFQVBVMTYuc3ViYXJyYXkocGl4ZWxzID4+IDEsIHBpeGVscyArIGJ5dGVzID4+IDEpOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgR0wucmVjb3JkRXJyb3IoMTI4MCk7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBlbXNjcmlwdGVuV2ViR0xHZXRIZWFwRm9yVHlwZSh0eXBlKSB7CiAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgICAgIGNhc2UgNTEyMDoKICAgICAgICAgICAgICAgIHJldHVybiBIRUFQODsKICAgICAgICAgICAgY2FzZSA1MTIxOgogICAgICAgICAgICAgICAgcmV0dXJuIEhFQVBVODsKICAgICAgICAgICAgY2FzZSA1MTIyOgogICAgICAgICAgICAgICAgcmV0dXJuIEhFQVAxNjsKICAgICAgICAgICAgY2FzZSA1MTIzOgogICAgICAgICAgICBjYXNlIDMzNjM1OgogICAgICAgICAgICBjYXNlIDMyODE5OgogICAgICAgICAgICBjYXNlIDMyODIwOgogICAgICAgICAgICBjYXNlIDM2MTkzOgogICAgICAgICAgICBjYXNlIDUxMzE6CiAgICAgICAgICAgICAgICByZXR1cm4gSEVBUFUxNjsKICAgICAgICAgICAgY2FzZSA1MTI0OgogICAgICAgICAgICAgICAgcmV0dXJuIEhFQVAzMjsKICAgICAgICAgICAgY2FzZSA1MTI1OgogICAgICAgICAgICBjYXNlIDM0MDQyOgogICAgICAgICAgICBjYXNlIDM1OTAyOgogICAgICAgICAgICBjYXNlIDMzNjQwOgogICAgICAgICAgICBjYXNlIDM1ODk5OgogICAgICAgICAgICBjYXNlIDM0MDQyOgogICAgICAgICAgICAgICAgcmV0dXJuIEhFQVBVMzI7CiAgICAgICAgICAgIGNhc2UgNTEyNjoKICAgICAgICAgICAgICAgIHJldHVybiBIRUFQRjMyOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZW1zY3JpcHRlbldlYkdMR2V0U2hpZnRGb3JUeXBlKHR5cGUpIHsKICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgY2FzZSA1MTIwOgogICAgICAgICAgICBjYXNlIDUxMjE6CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgY2FzZSA1MTIyOgogICAgICAgICAgICBjYXNlIDUxMjM6CiAgICAgICAgICAgIGNhc2UgMzM2MzU6CiAgICAgICAgICAgIGNhc2UgMzI4MTk6CiAgICAgICAgICAgIGNhc2UgMzI4MjA6CiAgICAgICAgICAgIGNhc2UgMzYxOTM6CiAgICAgICAgICAgIGNhc2UgNTEzMToKICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICBjYXNlIDUxMjQ6CiAgICAgICAgICAgIGNhc2UgNTEyNjoKICAgICAgICAgICAgY2FzZSA1MTI1OgogICAgICAgICAgICBjYXNlIDM0MDQyOgogICAgICAgICAgICBjYXNlIDM1OTAyOgogICAgICAgICAgICBjYXNlIDMzNjQwOgogICAgICAgICAgICBjYXNlIDM1ODk5OgogICAgICAgICAgICBjYXNlIDM0MDQyOgogICAgICAgICAgICAgICAgcmV0dXJuIDI7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKSB7CiAgICAgICAgaWYgKEdMLmN1cnJlbnRDb250ZXh0LnN1cHBvcnRzV2ViR0wyRW50cnlQb2ludHMpIHsKICAgICAgICAgICAgaWYgKEdMY3R4LmN1cnJlbnRQaXhlbFBhY2tCdWZmZXJCaW5kaW5nKSB7CiAgICAgICAgICAgICAgICBHTGN0eC5yZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgR0xjdHgucmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGVtc2NyaXB0ZW5XZWJHTEdldEhlYXBGb3JUeXBlKHR5cGUpLCBwaXhlbHMgPj4gZW1zY3JpcHRlbldlYkdMR2V0U2hpZnRGb3JUeXBlKHR5cGUpKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICB2YXIgcGl4ZWxEYXRhID0gZW1zY3JpcHRlbldlYkdMR2V0VGV4UGl4ZWxEYXRhKHR5cGUsIGZvcm1hdCwgd2lkdGgsIGhlaWdodCwgcGl4ZWxzLCBmb3JtYXQpOwogICAgICAgIGlmICghcGl4ZWxEYXRhKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODApOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgR0xjdHgucmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHBpeGVsRGF0YSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xSZW5kZXJidWZmZXJTdG9yYWdlKHgwLCB4MSwgeDIsIHgzKSB7CiAgICAgICAgR0xjdHhbInJlbmRlcmJ1ZmZlclN0b3JhZ2UiXSh4MCwgeDEsIHgyLCB4MykKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoeDAsIHgxLCB4MiwgeDMsIHg0KSB7CiAgICAgICAgR0xjdHhbInJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSJdKHgwLCB4MSwgeDIsIHgzLCB4NCkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xTYW1wbGVyUGFyYW1ldGVyaShzYW1wbGVyLCBwbmFtZSwgcGFyYW0pIHsKICAgICAgICBHTGN0eFsic2FtcGxlclBhcmFtZXRlcmkiXShzYW1wbGVyID8gR0wuc2FtcGxlcnNbc2FtcGxlcl0gOiBudWxsLCBwbmFtZSwgcGFyYW0pCiAgICB9CgogICAgZnVuY3Rpb24gX2dsU2Npc3Nvcih4MCwgeDEsIHgyLCB4MykgewogICAgICAgIEdMY3R4WyJzY2lzc29yIl0oeDAsIHgxLCB4MiwgeDMpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsU2hhZGVyU291cmNlKHNoYWRlciwgY291bnQsIHN0cmluZywgbGVuZ3RoKSB7CiAgICAgICAgdmFyIHNvdXJjZSA9IEdMLmdldFNvdXJjZShzaGFkZXIsIGNvdW50LCBzdHJpbmcsIGxlbmd0aCk7CiAgICAgICAgR0xjdHguc2hhZGVyU291cmNlKEdMLnNoYWRlcnNbc2hhZGVyXSwgc291cmNlKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFN0ZW5jaWxGdW5jU2VwYXJhdGUoeDAsIHgxLCB4MiwgeDMpIHsKICAgICAgICBHTGN0eFsic3RlbmNpbEZ1bmNTZXBhcmF0ZSJdKHgwLCB4MSwgeDIsIHgzKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFN0ZW5jaWxNYXNrKHgwKSB7CiAgICAgICAgR0xjdHhbInN0ZW5jaWxNYXNrIl0oeDApCiAgICB9CgogICAgZnVuY3Rpb24gX2dsU3RlbmNpbE9wU2VwYXJhdGUoeDAsIHgxLCB4MiwgeDMpIHsKICAgICAgICBHTGN0eFsic3RlbmNpbE9wU2VwYXJhdGUiXSh4MCwgeDEsIHgyLCB4MykKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKSB7CiAgICAgICAgaWYgKEdMLmN1cnJlbnRDb250ZXh0LnN1cHBvcnRzV2ViR0wyRW50cnlQb2ludHMpIHsKICAgICAgICAgICAgaWYgKEdMY3R4LmN1cnJlbnRQaXhlbFVucGFja0J1ZmZlckJpbmRpbmcpIHsKICAgICAgICAgICAgICAgIEdMY3R4LnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGJvcmRlciwgZm9ybWF0LCB0eXBlLCBwaXhlbHMpCiAgICAgICAgICAgIH0gZWxzZSBpZiAocGl4ZWxzICE9IDApIHsKICAgICAgICAgICAgICAgIEdMY3R4LnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGJvcmRlciwgZm9ybWF0LCB0eXBlLCBlbXNjcmlwdGVuV2ViR0xHZXRIZWFwRm9yVHlwZSh0eXBlKSwgcGl4ZWxzID4+IGVtc2NyaXB0ZW5XZWJHTEdldFNoaWZ0Rm9yVHlwZSh0eXBlKSkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIEdMY3R4LnRleEltYWdlMkQodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGJvcmRlciwgZm9ybWF0LCB0eXBlLCBudWxsKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICB2YXIgcGl4ZWxEYXRhID0gbnVsbDsKICAgICAgICBpZiAocGl4ZWxzKSBwaXhlbERhdGEgPSBlbXNjcmlwdGVuV2ViR0xHZXRUZXhQaXhlbERhdGEodHlwZSwgZm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBwaXhlbHMsIGludGVybmFsRm9ybWF0KTsKICAgICAgICBHTGN0eC50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsIGZvcm1hdCwgdHlwZSwgcGl4ZWxEYXRhKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFRleEltYWdlM0QodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBib3JkZXIsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKSB7CiAgICAgICAgaWYgKEdMY3R4LmN1cnJlbnRQaXhlbFVucGFja0J1ZmZlckJpbmRpbmcpIHsKICAgICAgICAgICAgR0xjdHhbInRleEltYWdlM0QiXSh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGJvcmRlciwgZm9ybWF0LCB0eXBlLCBwaXhlbHMpCiAgICAgICAgfSBlbHNlIGlmIChwaXhlbHMgIT0gMCkgewogICAgICAgICAgICBHTGN0eFsidGV4SW1hZ2UzRCJdKHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgYm9yZGVyLCBmb3JtYXQsIHR5cGUsIGVtc2NyaXB0ZW5XZWJHTEdldEhlYXBGb3JUeXBlKHR5cGUpLCBwaXhlbHMgPj4gZW1zY3JpcHRlbldlYkdMR2V0U2hpZnRGb3JUeXBlKHR5cGUpKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIEdMY3R4WyJ0ZXhJbWFnZTNEIl0odGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBib3JkZXIsIGZvcm1hdCwgdHlwZSwgbnVsbCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsVGV4UGFyYW1ldGVyZih4MCwgeDEsIHgyKSB7CiAgICAgICAgR0xjdHhbInRleFBhcmFtZXRlcmYiXSh4MCwgeDEsIHgyKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFRleFBhcmFtZXRlcmkoeDAsIHgxLCB4MikgewogICAgICAgIEdMY3R4WyJ0ZXhQYXJhbWV0ZXJpIl0oeDAsIHgxLCB4MikKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xUZXhQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCBwYXJhbXMpIHsKICAgICAgICB2YXIgcGFyYW0gPSBIRUFQMzJbcGFyYW1zID4+IDJdOwogICAgICAgIEdMY3R4LnRleFBhcmFtZXRlcmkodGFyZ2V0LCBwbmFtZSwgcGFyYW0pCiAgICB9CgogICAgZnVuY3Rpb24gX2dsVGV4U3RvcmFnZTJEKHgwLCB4MSwgeDIsIHgzLCB4NCkgewogICAgICAgIEdMY3R4WyJ0ZXhTdG9yYWdlMkQiXSh4MCwgeDEsIHgyLCB4MywgeDQpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsVGV4U3RvcmFnZTNEKHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUpIHsKICAgICAgICBHTGN0eFsidGV4U3RvcmFnZTNEIl0oeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xUZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgcGl4ZWxzKSB7CiAgICAgICAgaWYgKEdMLmN1cnJlbnRDb250ZXh0LnN1cHBvcnRzV2ViR0wyRW50cnlQb2ludHMpIHsKICAgICAgICAgICAgaWYgKEdMY3R4LmN1cnJlbnRQaXhlbFVucGFja0J1ZmZlckJpbmRpbmcpIHsKICAgICAgICAgICAgICAgIEdMY3R4LnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwaXhlbHMpCiAgICAgICAgICAgIH0gZWxzZSBpZiAocGl4ZWxzICE9IDApIHsKICAgICAgICAgICAgICAgIEdMY3R4LnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBlbXNjcmlwdGVuV2ViR0xHZXRIZWFwRm9yVHlwZSh0eXBlKSwgcGl4ZWxzID4+IGVtc2NyaXB0ZW5XZWJHTEdldFNoaWZ0Rm9yVHlwZSh0eXBlKSkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIEdMY3R4LnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBudWxsKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICB2YXIgcGl4ZWxEYXRhID0gbnVsbDsKICAgICAgICBpZiAocGl4ZWxzKSBwaXhlbERhdGEgPSBlbXNjcmlwdGVuV2ViR0xHZXRUZXhQaXhlbERhdGEodHlwZSwgZm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBwaXhlbHMsIDApOwogICAgICAgIEdMY3R4LnRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBwaXhlbERhdGEpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsVGV4U3ViSW1hZ2UzRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB6b2Zmc2V0LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgZm9ybWF0LCB0eXBlLCBwaXhlbHMpIHsKICAgICAgICBpZiAoR0xjdHguY3VycmVudFBpeGVsVW5wYWNrQnVmZmVyQmluZGluZykgewogICAgICAgICAgICBHTGN0eFsidGV4U3ViSW1hZ2UzRCJdKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQsIHpvZmZzZXQsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBmb3JtYXQsIHR5cGUsIHBpeGVscykKICAgICAgICB9IGVsc2UgaWYgKHBpeGVscyAhPSAwKSB7CiAgICAgICAgICAgIEdMY3R4WyJ0ZXhTdWJJbWFnZTNEIl0odGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgem9mZnNldCwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGZvcm1hdCwgdHlwZSwgZW1zY3JpcHRlbldlYkdMR2V0SGVhcEZvclR5cGUodHlwZSksIHBpeGVscyA+PiBlbXNjcmlwdGVuV2ViR0xHZXRTaGlmdEZvclR5cGUodHlwZSkpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgR0xjdHhbInRleFN1YkltYWdlM0QiXSh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB6b2Zmc2V0LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgZm9ybWF0LCB0eXBlLCBudWxsKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKHByb2dyYW0sIGNvdW50LCB2YXJ5aW5ncywgYnVmZmVyTW9kZSkgewogICAgICAgIHByb2dyYW0gPSBHTC5wcm9ncmFtc1twcm9ncmFtXTsKICAgICAgICB2YXIgdmFycyA9IFtdOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykgdmFycy5wdXNoKFBvaW50ZXJfc3RyaW5naWZ5KEhFQVAzMlt2YXJ5aW5ncyArIGkgKiA0ID4+IDJdKSk7CiAgICAgICAgR0xjdHhbInRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MiXShwcm9ncmFtLCB2YXJzLCBidWZmZXJNb2RlKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFVuaWZvcm0xZnYobG9jYXRpb24sIGNvdW50LCB2YWx1ZSkgewogICAgICAgIGlmIChHTC5jdXJyZW50Q29udGV4dC5zdXBwb3J0c1dlYkdMMkVudHJ5UG9pbnRzKSB7CiAgICAgICAgICAgIEdMY3R4LnVuaWZvcm0xZnYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQRjMyLCB2YWx1ZSA+PiAyLCBjb3VudCk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICB2YXIgdmlldzsKICAgICAgICBpZiAoY291bnQgPD0gR0wuTUlOSV9URU1QX0JVRkZFUl9TSVpFKSB7CiAgICAgICAgICAgIHZpZXcgPSBHTC5taW5pVGVtcEJ1ZmZlclZpZXdzW2NvdW50IC0gMV07CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICAgICAgICAgdmlld1tpXSA9IEhFQVBGMzJbdmFsdWUgKyA0ICogaSA+PiAyXQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmlldyA9IEhFQVBGMzIuc3ViYXJyYXkodmFsdWUgPj4gMiwgdmFsdWUgKyBjb3VudCAqIDQgPj4gMikKICAgICAgICB9CiAgICAgICAgR0xjdHgudW5pZm9ybTFmdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sIHZpZXcpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsVW5pZm9ybTFpKGxvY2F0aW9uLCB2MCkgewogICAgICAgIEdMY3R4LnVuaWZvcm0xaShHTC51bmlmb3Jtc1tsb2NhdGlvbl0sIHYwKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFVuaWZvcm0xaXYobG9jYXRpb24sIGNvdW50LCB2YWx1ZSkgewogICAgICAgIGlmIChHTC5jdXJyZW50Q29udGV4dC5zdXBwb3J0c1dlYkdMMkVudHJ5UG9pbnRzKSB7CiAgICAgICAgICAgIEdMY3R4LnVuaWZvcm0xaXYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQMzIsIHZhbHVlID4+IDIsIGNvdW50KTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIEdMY3R4LnVuaWZvcm0xaXYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQMzIuc3ViYXJyYXkodmFsdWUgPj4gMiwgdmFsdWUgKyBjb3VudCAqIDQgPj4gMikpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsVW5pZm9ybTF1aXYobG9jYXRpb24sIGNvdW50LCB2YWx1ZSkgewogICAgICAgIGlmIChHTC5jdXJyZW50Q29udGV4dC5zdXBwb3J0c1dlYkdMMkVudHJ5UG9pbnRzKSB7CiAgICAgICAgICAgIEdMY3R4LnVuaWZvcm0xdWl2KEdMLnVuaWZvcm1zW2xvY2F0aW9uXSwgSEVBUFUzMiwgdmFsdWUgPj4gMiwgY291bnQpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgR0xjdHgudW5pZm9ybTF1aXYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQVTMyLnN1YmFycmF5KHZhbHVlID4+IDIsIHZhbHVlICsgY291bnQgKiA0ID4+IDIpKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xVbmlmb3JtMmZ2KGxvY2F0aW9uLCBjb3VudCwgdmFsdWUpIHsKICAgICAgICBpZiAoR0wuY3VycmVudENvbnRleHQuc3VwcG9ydHNXZWJHTDJFbnRyeVBvaW50cykgewogICAgICAgICAgICBHTGN0eC51bmlmb3JtMmZ2KEdMLnVuaWZvcm1zW2xvY2F0aW9uXSwgSEVBUEYzMiwgdmFsdWUgPj4gMiwgY291bnQgKiAyKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIHZhciB2aWV3OwogICAgICAgIGlmICgyICogY291bnQgPD0gR0wuTUlOSV9URU1QX0JVRkZFUl9TSVpFKSB7CiAgICAgICAgICAgIHZpZXcgPSBHTC5taW5pVGVtcEJ1ZmZlclZpZXdzWzIgKiBjb3VudCAtIDFdOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIgKiBjb3VudDsgaSArPSAyKSB7CiAgICAgICAgICAgICAgICB2aWV3W2ldID0gSEVBUEYzMlt2YWx1ZSArIDQgKiBpID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgMV0gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgNCkgPj4gMl0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZpZXcgPSBIRUFQRjMyLnN1YmFycmF5KHZhbHVlID4+IDIsIHZhbHVlICsgY291bnQgKiA4ID4+IDIpCiAgICAgICAgfQogICAgICAgIEdMY3R4LnVuaWZvcm0yZnYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCB2aWV3KQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFVuaWZvcm0yaXYobG9jYXRpb24sIGNvdW50LCB2YWx1ZSkgewogICAgICAgIGlmIChHTC5jdXJyZW50Q29udGV4dC5zdXBwb3J0c1dlYkdMMkVudHJ5UG9pbnRzKSB7CiAgICAgICAgICAgIEdMY3R4LnVuaWZvcm0yaXYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQMzIsIHZhbHVlID4+IDIsIGNvdW50ICogMik7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBHTGN0eC51bmlmb3JtMml2KEdMLnVuaWZvcm1zW2xvY2F0aW9uXSwgSEVBUDMyLnN1YmFycmF5KHZhbHVlID4+IDIsIHZhbHVlICsgY291bnQgKiA4ID4+IDIpKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFVuaWZvcm0ydWl2KGxvY2F0aW9uLCBjb3VudCwgdmFsdWUpIHsKICAgICAgICBpZiAoR0wuY3VycmVudENvbnRleHQuc3VwcG9ydHNXZWJHTDJFbnRyeVBvaW50cykgewogICAgICAgICAgICBHTGN0eC51bmlmb3JtMnVpdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sIEhFQVBVMzIsIHZhbHVlID4+IDIsIGNvdW50ICogMikKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBHTGN0eC51bmlmb3JtMnVpdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sIEhFQVBVMzIuc3ViYXJyYXkodmFsdWUgPj4gMiwgdmFsdWUgKyBjb3VudCAqIDggPj4gMikpCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFVuaWZvcm0zZnYobG9jYXRpb24sIGNvdW50LCB2YWx1ZSkgewogICAgICAgIGlmIChHTC5jdXJyZW50Q29udGV4dC5zdXBwb3J0c1dlYkdMMkVudHJ5UG9pbnRzKSB7CiAgICAgICAgICAgIEdMY3R4LnVuaWZvcm0zZnYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQRjMyLCB2YWx1ZSA+PiAyLCBjb3VudCAqIDMpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgdmFyIHZpZXc7CiAgICAgICAgaWYgKDMgKiBjb3VudCA8PSBHTC5NSU5JX1RFTVBfQlVGRkVSX1NJWkUpIHsKICAgICAgICAgICAgdmlldyA9IEdMLm1pbmlUZW1wQnVmZmVyVmlld3NbMyAqIGNvdW50IC0gMV07CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMyAqIGNvdW50OyBpICs9IDMpIHsKICAgICAgICAgICAgICAgIHZpZXdbaV0gPSBIRUFQRjMyW3ZhbHVlICsgNCAqIGkgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyAxXSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyA0KSA+PiAyXTsKICAgICAgICAgICAgICAgIHZpZXdbaSArIDJdID0gSEVBUEYzMlt2YWx1ZSArICg0ICogaSArIDgpID4+IDJdCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2aWV3ID0gSEVBUEYzMi5zdWJhcnJheSh2YWx1ZSA+PiAyLCB2YWx1ZSArIGNvdW50ICogMTIgPj4gMikKICAgICAgICB9CiAgICAgICAgR0xjdHgudW5pZm9ybTNmdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sIHZpZXcpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsVW5pZm9ybTNpdihsb2NhdGlvbiwgY291bnQsIHZhbHVlKSB7CiAgICAgICAgaWYgKEdMLmN1cnJlbnRDb250ZXh0LnN1cHBvcnRzV2ViR0wyRW50cnlQb2ludHMpIHsKICAgICAgICAgICAgR0xjdHgudW5pZm9ybTNpdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sIEhFQVAzMiwgdmFsdWUgPj4gMiwgY291bnQgKiAzKTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIEdMY3R4LnVuaWZvcm0zaXYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQMzIuc3ViYXJyYXkodmFsdWUgPj4gMiwgdmFsdWUgKyBjb3VudCAqIDEyID4+IDIpKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFVuaWZvcm0zdWl2KGxvY2F0aW9uLCBjb3VudCwgdmFsdWUpIHsKICAgICAgICBpZiAoR0wuY3VycmVudENvbnRleHQuc3VwcG9ydHNXZWJHTDJFbnRyeVBvaW50cykgewogICAgICAgICAgICBHTGN0eC51bmlmb3JtM3VpdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sIEhFQVBVMzIsIHZhbHVlID4+IDIsIGNvdW50ICogMykKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBHTGN0eC51bmlmb3JtM3VpdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sIEhFQVBVMzIuc3ViYXJyYXkodmFsdWUgPj4gMiwgdmFsdWUgKyBjb3VudCAqIDEyID4+IDIpKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xVbmlmb3JtNGZ2KGxvY2F0aW9uLCBjb3VudCwgdmFsdWUpIHsKICAgICAgICBpZiAoR0wuY3VycmVudENvbnRleHQuc3VwcG9ydHNXZWJHTDJFbnRyeVBvaW50cykgewogICAgICAgICAgICBHTGN0eC51bmlmb3JtNGZ2KEdMLnVuaWZvcm1zW2xvY2F0aW9uXSwgSEVBUEYzMiwgdmFsdWUgPj4gMiwgY291bnQgKiA0KTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIHZhciB2aWV3OwogICAgICAgIGlmICg0ICogY291bnQgPD0gR0wuTUlOSV9URU1QX0JVRkZFUl9TSVpFKSB7CiAgICAgICAgICAgIHZpZXcgPSBHTC5taW5pVGVtcEJ1ZmZlclZpZXdzWzQgKiBjb3VudCAtIDFdOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQgKiBjb3VudDsgaSArPSA0KSB7CiAgICAgICAgICAgICAgICB2aWV3W2ldID0gSEVBUEYzMlt2YWx1ZSArIDQgKiBpID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgMV0gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgNCkgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyAyXSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyA4KSA+PiAyXTsKICAgICAgICAgICAgICAgIHZpZXdbaSArIDNdID0gSEVBUEYzMlt2YWx1ZSArICg0ICogaSArIDEyKSA+PiAyXQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmlldyA9IEhFQVBGMzIuc3ViYXJyYXkodmFsdWUgPj4gMiwgdmFsdWUgKyBjb3VudCAqIDE2ID4+IDIpCiAgICAgICAgfQogICAgICAgIEdMY3R4LnVuaWZvcm00ZnYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCB2aWV3KQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFVuaWZvcm00aXYobG9jYXRpb24sIGNvdW50LCB2YWx1ZSkgewogICAgICAgIGlmIChHTC5jdXJyZW50Q29udGV4dC5zdXBwb3J0c1dlYkdMMkVudHJ5UG9pbnRzKSB7CiAgICAgICAgICAgIEdMY3R4LnVuaWZvcm00aXYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQMzIsIHZhbHVlID4+IDIsIGNvdW50ICogNCk7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBHTGN0eC51bmlmb3JtNGl2KEdMLnVuaWZvcm1zW2xvY2F0aW9uXSwgSEVBUDMyLnN1YmFycmF5KHZhbHVlID4+IDIsIHZhbHVlICsgY291bnQgKiAxNiA+PiAyKSkKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xVbmlmb3JtNHVpdihsb2NhdGlvbiwgY291bnQsIHZhbHVlKSB7CiAgICAgICAgaWYgKEdMLmN1cnJlbnRDb250ZXh0LnN1cHBvcnRzV2ViR0wyRW50cnlQb2ludHMpIHsKICAgICAgICAgICAgR0xjdHgudW5pZm9ybTR1aXYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQVTMyLCB2YWx1ZSA+PiAyLCBjb3VudCAqIDQpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgR0xjdHgudW5pZm9ybTR1aXYoR0wudW5pZm9ybXNbbG9jYXRpb25dLCBIRUFQVTMyLnN1YmFycmF5KHZhbHVlID4+IDIsIHZhbHVlICsgY291bnQgKiAxNiA+PiAyKSkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gX2dsVW5pZm9ybUJsb2NrQmluZGluZyhwcm9ncmFtLCB1bmlmb3JtQmxvY2tJbmRleCwgdW5pZm9ybUJsb2NrQmluZGluZykgewogICAgICAgIHByb2dyYW0gPSBHTC5wcm9ncmFtc1twcm9ncmFtXTsKICAgICAgICBHTGN0eFsidW5pZm9ybUJsb2NrQmluZGluZyJdKHByb2dyYW0sIHVuaWZvcm1CbG9ja0luZGV4LCB1bmlmb3JtQmxvY2tCaW5kaW5nKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFVuaWZvcm1NYXRyaXgzZnYobG9jYXRpb24sIGNvdW50LCB0cmFuc3Bvc2UsIHZhbHVlKSB7CiAgICAgICAgaWYgKEdMLmN1cnJlbnRDb250ZXh0LnN1cHBvcnRzV2ViR0wyRW50cnlQb2ludHMpIHsKICAgICAgICAgICAgR0xjdHgudW5pZm9ybU1hdHJpeDNmdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sICEhdHJhbnNwb3NlLCBIRUFQRjMyLCB2YWx1ZSA+PiAyLCBjb3VudCAqIDkpOwogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgdmFyIHZpZXc7CiAgICAgICAgaWYgKDkgKiBjb3VudCA8PSBHTC5NSU5JX1RFTVBfQlVGRkVSX1NJWkUpIHsKICAgICAgICAgICAgdmlldyA9IEdMLm1pbmlUZW1wQnVmZmVyVmlld3NbOSAqIGNvdW50IC0gMV07CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgOSAqIGNvdW50OyBpICs9IDkpIHsKICAgICAgICAgICAgICAgIHZpZXdbaV0gPSBIRUFQRjMyW3ZhbHVlICsgNCAqIGkgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyAxXSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyA0KSA+PiAyXTsKICAgICAgICAgICAgICAgIHZpZXdbaSArIDJdID0gSEVBUEYzMlt2YWx1ZSArICg0ICogaSArIDgpID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgM10gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgMTIpID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgNF0gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgMTYpID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgNV0gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgMjApID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgNl0gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgMjQpID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgN10gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgMjgpID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgOF0gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgMzIpID4+IDJdCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2aWV3ID0gSEVBUEYzMi5zdWJhcnJheSh2YWx1ZSA+PiAyLCB2YWx1ZSArIGNvdW50ICogMzYgPj4gMikKICAgICAgICB9CiAgICAgICAgR0xjdHgudW5pZm9ybU1hdHJpeDNmdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sICEhdHJhbnNwb3NlLCB2aWV3KQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFVuaWZvcm1NYXRyaXg0ZnYobG9jYXRpb24sIGNvdW50LCB0cmFuc3Bvc2UsIHZhbHVlKSB7CiAgICAgICAgaWYgKEdMLmN1cnJlbnRDb250ZXh0LnN1cHBvcnRzV2ViR0wyRW50cnlQb2ludHMpIHsKICAgICAgICAgICAgR0xjdHgudW5pZm9ybU1hdHJpeDRmdihHTC51bmlmb3Jtc1tsb2NhdGlvbl0sICEhdHJhbnNwb3NlLCBIRUFQRjMyLCB2YWx1ZSA+PiAyLCBjb3VudCAqIDE2KTsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIHZhciB2aWV3OwogICAgICAgIGlmICgxNiAqIGNvdW50IDw9IEdMLk1JTklfVEVNUF9CVUZGRVJfU0laRSkgewogICAgICAgICAgICB2aWV3ID0gR0wubWluaVRlbXBCdWZmZXJWaWV3c1sxNiAqIGNvdW50IC0gMV07CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTYgKiBjb3VudDsgaSArPSAxNikgewogICAgICAgICAgICAgICAgdmlld1tpXSA9IEhFQVBGMzJbdmFsdWUgKyA0ICogaSA+PiAyXTsKICAgICAgICAgICAgICAgIHZpZXdbaSArIDFdID0gSEVBUEYzMlt2YWx1ZSArICg0ICogaSArIDQpID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgMl0gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgOCkgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyAzXSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyAxMikgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyA0XSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyAxNikgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyA1XSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyAyMCkgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyA2XSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyAyNCkgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyA3XSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyAyOCkgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyA4XSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyAzMikgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyA5XSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyAzNikgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyAxMF0gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgNDApID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgMTFdID0gSEVBUEYzMlt2YWx1ZSArICg0ICogaSArIDQ0KSA+PiAyXTsKICAgICAgICAgICAgICAgIHZpZXdbaSArIDEyXSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyA0OCkgPj4gMl07CiAgICAgICAgICAgICAgICB2aWV3W2kgKyAxM10gPSBIRUFQRjMyW3ZhbHVlICsgKDQgKiBpICsgNTIpID4+IDJdOwogICAgICAgICAgICAgICAgdmlld1tpICsgMTRdID0gSEVBUEYzMlt2YWx1ZSArICg0ICogaSArIDU2KSA+PiAyXTsKICAgICAgICAgICAgICAgIHZpZXdbaSArIDE1XSA9IEhFQVBGMzJbdmFsdWUgKyAoNCAqIGkgKyA2MCkgPj4gMl0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZpZXcgPSBIRUFQRjMyLnN1YmFycmF5KHZhbHVlID4+IDIsIHZhbHVlICsgY291bnQgKiA2NCA+PiAyKQogICAgICAgIH0KICAgICAgICBHTGN0eC51bmlmb3JtTWF0cml4NGZ2KEdMLnVuaWZvcm1zW2xvY2F0aW9uXSwgISF0cmFuc3Bvc2UsIHZpZXcpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsVW5tYXBCdWZmZXIodGFyZ2V0KSB7CiAgICAgICAgaWYgKCFlbXNjcmlwdGVuV2ViR0xWYWxpZGF0ZU1hcEJ1ZmZlclRhcmdldCh0YXJnZXQpKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODApOwogICAgICAgICAgICBNb2R1bGUucHJpbnRFcnIoIkdMX0lOVkFMSURfRU5VTSBpbiBnbFVubWFwQnVmZmVyIik7CiAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgfQogICAgICAgIHZhciBidWZmZXIgPSBlbXNjcmlwdGVuV2ViR0xHZXRCdWZmZXJCaW5kaW5nKHRhcmdldCk7CiAgICAgICAgdmFyIG1hcHBpbmcgPSBHTC5tYXBwZWRCdWZmZXJzW2J1ZmZlcl07CiAgICAgICAgaWYgKCFtYXBwaW5nKSB7CiAgICAgICAgICAgIEdMLnJlY29yZEVycm9yKDEyODIpOwogICAgICAgICAgICBNb2R1bGUucHJpbnRFcnJvcigiYnVmZmVyIHdhcyBuZXZlciBtYXBwZWQgaW4gZ2xVbm1hcEJ1ZmZlciIpOwogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0KICAgICAgICBHTC5tYXBwZWRCdWZmZXJzW2J1ZmZlcl0gPSBudWxsOwogICAgICAgIGlmICghKG1hcHBpbmcuYWNjZXNzICYgMTYpKQogICAgICAgICAgICBpZiAoR0wuY3VycmVudENvbnRleHQuc3VwcG9ydHNXZWJHTDJFbnRyeVBvaW50cykgewogICAgICAgICAgICAgICAgR0xjdHguYnVmZmVyU3ViRGF0YSh0YXJnZXQsIG1hcHBpbmcub2Zmc2V0LCBIRUFQVTgsIG1hcHBpbmcubWVtLCBtYXBwaW5nLmxlbmd0aCkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIEdMY3R4LmJ1ZmZlclN1YkRhdGEodGFyZ2V0LCBtYXBwaW5nLm9mZnNldCwgSEVBUFU4LnN1YmFycmF5KG1hcHBpbmcubWVtLCBtYXBwaW5nLm1lbSArIG1hcHBpbmcubGVuZ3RoKSkKICAgICAgICAgICAgfSBfZnJlZShtYXBwaW5nLm1lbSk7CiAgICAgICAgcmV0dXJuIDEKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xVc2VQcm9ncmFtKHByb2dyYW0pIHsKICAgICAgICBHTGN0eC51c2VQcm9ncmFtKHByb2dyYW0gPyBHTC5wcm9ncmFtc1twcm9ncmFtXSA6IG51bGwpCiAgICB9CgogICAgZnVuY3Rpb24gX2dsVmFsaWRhdGVQcm9ncmFtKHByb2dyYW0pIHsKICAgICAgICBHTGN0eC52YWxpZGF0ZVByb2dyYW0oR0wucHJvZ3JhbXNbcHJvZ3JhbV0pCiAgICB9CgogICAgZnVuY3Rpb24gX2dsVmVydGV4QXR0cmliNGYoeDAsIHgxLCB4MiwgeDMsIHg0KSB7CiAgICAgICAgR0xjdHhbInZlcnRleEF0dHJpYjRmIl0oeDAsIHgxLCB4MiwgeDMsIHg0KQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFZlcnRleEF0dHJpYjRmdihpbmRleCwgdikgewogICAgICAgIEdMY3R4LnZlcnRleEF0dHJpYjRmKGluZGV4LCBIRUFQRjMyW3YgPj4gMl0sIEhFQVBGMzJbdiArIDQgPj4gMl0sIEhFQVBGMzJbdiArIDggPj4gMl0sIEhFQVBGMzJbdiArIDEyID4+IDJdKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFZlcnRleEF0dHJpYklQb2ludGVyKGluZGV4LCBzaXplLCB0eXBlLCBzdHJpZGUsIHB0cikgewogICAgICAgIHZhciBjYiA9IEdMLmN1cnJlbnRDb250ZXh0LmNsaWVudEJ1ZmZlcnNbaW5kZXhdOwogICAgICAgIGlmICghR0wuY3VyckFycmF5QnVmZmVyKSB7CiAgICAgICAgICAgIGNiLnNpemUgPSBzaXplOwogICAgICAgICAgICBjYi50eXBlID0gdHlwZTsKICAgICAgICAgICAgY2Iubm9ybWFsaXplZCA9IGZhbHNlOwogICAgICAgICAgICBjYi5zdHJpZGUgPSBzdHJpZGU7CiAgICAgICAgICAgIGNiLnB0ciA9IHB0cjsKICAgICAgICAgICAgY2IuY2xpZW50c2lkZSA9IHRydWU7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBjYi5jbGllbnRzaWRlID0gZmFsc2U7CiAgICAgICAgR0xjdHgudmVydGV4QXR0cmliSVBvaW50ZXIoaW5kZXgsIHNpemUsIHR5cGUsIHN0cmlkZSwgcHRyKQogICAgfQoKICAgIGZ1bmN0aW9uIF9nbFZlcnRleEF0dHJpYlBvaW50ZXIoaW5kZXgsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlkZSwgcHRyKSB7CiAgICAgICAgR0xjdHgudmVydGV4QXR0cmliUG9pbnRlcihpbmRleCwgc2l6ZSwgdHlwZSwgISFub3JtYWxpemVkLCBzdHJpZGUsIHB0cikKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2xWaWV3cG9ydCh4MCwgeDEsIHgyLCB4MykgewogICAgICAgIEdMY3R4WyJ2aWV3cG9ydCJdKHgwLCB4MSwgeDIsIHgzKQogICAgfQogICAgdmFyIF9fX3RtX2N1cnJlbnQgPSBTVEFUSUNUT1A7CiAgICBTVEFUSUNUT1AgKz0gNDg7CiAgICB2YXIgX19fdG1fdGltZXpvbmUgPSBhbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoIkdNVCIpLCAiaTgiLCBBTExPQ19TVEFUSUMpOwoKICAgIGZ1bmN0aW9uIF9nbXRpbWVfcih0aW1lLCB0bVB0cikgewogICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoSEVBUDMyW3RpbWUgPj4gMl0gKiAxZTMpOwogICAgICAgIEhFQVAzMlt0bVB0ciA+PiAyXSA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpOwogICAgICAgIEhFQVAzMlt0bVB0ciArIDQgPj4gMl0gPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTsKICAgICAgICBIRUFQMzJbdG1QdHIgKyA4ID4+IDJdID0gZGF0ZS5nZXRVVENIb3VycygpOwogICAgICAgIEhFQVAzMlt0bVB0ciArIDEyID4+IDJdID0gZGF0ZS5nZXRVVENEYXRlKCk7CiAgICAgICAgSEVBUDMyW3RtUHRyICsgMTYgPj4gMl0gPSBkYXRlLmdldFVUQ01vbnRoKCk7CiAgICAgICAgSEVBUDMyW3RtUHRyICsgMjAgPj4gMl0gPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCkgLSAxOTAwOwogICAgICAgIEhFQVAzMlt0bVB0ciArIDI0ID4+IDJdID0gZGF0ZS5nZXRVVENEYXkoKTsKICAgICAgICBIRUFQMzJbdG1QdHIgKyAzNiA+PiAyXSA9IDA7CiAgICAgICAgSEVBUDMyW3RtUHRyICsgMzIgPj4gMl0gPSAwOwogICAgICAgIHZhciBzdGFydCA9IERhdGUuVVRDKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgMCwgMSwgMCwgMCwgMCwgMCk7CiAgICAgICAgdmFyIHlkYXkgPSAoZGF0ZS5nZXRUaW1lKCkgLSBzdGFydCkgLyAoMWUzICogNjAgKiA2MCAqIDI0KSB8IDA7CiAgICAgICAgSEVBUDMyW3RtUHRyICsgMjggPj4gMl0gPSB5ZGF5OwogICAgICAgIEhFQVAzMlt0bVB0ciArIDQwID4+IDJdID0gX19fdG1fdGltZXpvbmU7CiAgICAgICAgcmV0dXJuIHRtUHRyCiAgICB9CgogICAgZnVuY3Rpb24gX2dtdGltZSh0aW1lKSB7CiAgICAgICAgcmV0dXJuIF9nbXRpbWVfcih0aW1lLCBfX190bV9jdXJyZW50KQogICAgfQoKICAgIGZ1bmN0aW9uIF9pbmV0X2FkZHIocHRyKSB7CiAgICAgICAgdmFyIGFkZHIgPSBfX2luZXRfcHRvbjRfcmF3KFBvaW50ZXJfc3RyaW5naWZ5KHB0cikpOwogICAgICAgIGlmIChhZGRyID09PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiAtMQogICAgICAgIH0KICAgICAgICByZXR1cm4gYWRkcgogICAgfQogICAgdmFyIF9sbHZtX2NlaWxfZjMyID0gTWF0aF9jZWlsOwogICAgdmFyIF9sbHZtX2NlaWxfZjY0ID0gTWF0aF9jZWlsOwogICAgdmFyIGN0dHpfaTggPSBhbGxvY2F0ZShbOCwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNCwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNSwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNCwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNiwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNCwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNSwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNCwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNCwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNSwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNCwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNiwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNCwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNSwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMCwgNCwgMCwgMSwgMCwgMiwgMCwgMSwgMCwgMywgMCwgMSwgMCwgMiwgMCwgMSwgMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7CgogICAgZnVuY3Rpb24gX2xsdm1fY3R0el9pMzIoeCkgewogICAgICAgIHggPSB4IHwgMDsKICAgICAgICB2YXIgcmV0ID0gMDsKICAgICAgICByZXQgPSBIRUFQOFtjdHR6X2k4ICsgKHggJiAyNTUpID4+IDBdIHwgMDsKICAgICAgICBpZiAoKHJldCB8IDApIDwgOCkgcmV0dXJuIHJldCB8IDA7CiAgICAgICAgcmV0ID0gSEVBUDhbY3R0el9pOCArICh4ID4+IDggJiAyNTUpID4+IDBdIHwgMDsKICAgICAgICBpZiAoKHJldCB8IDApIDwgOCkgcmV0dXJuIHJldCArIDggfCAwOwogICAgICAgIHJldCA9IEhFQVA4W2N0dHpfaTggKyAoeCA+PiAxNiAmIDI1NSkgPj4gMF0gfCAwOwogICAgICAgIGlmICgocmV0IHwgMCkgPCA4KSByZXR1cm4gcmV0ICsgMTYgfCAwOwogICAgICAgIHJldHVybiAoSEVBUDhbY3R0el9pOCArICh4ID4+PiAyNCkgPj4gMF0gfCAwKSArIDI0IHwgMAogICAgfQoKICAgIGZ1bmN0aW9uIF9sbHZtX2VoX3R5cGVpZF9mb3IodHlwZSkgewogICAgICAgIHJldHVybiB0eXBlCiAgICB9CgogICAgZnVuY3Rpb24gX2xsdm1fZXhwMl9mMzIoeCkgewogICAgICAgIHJldHVybiBNYXRoLnBvdygyLCB4KQogICAgfQogICAgdmFyIF9sbHZtX2ZhYnNfZjMyID0gTWF0aF9hYnM7CiAgICB2YXIgX2xsdm1fZmFic19mNjQgPSBNYXRoX2FiczsKICAgIHZhciBfbGx2bV9mbG9vcl9mMzIgPSBNYXRoX2Zsb29yOwogICAgdmFyIF9sbHZtX2Zsb29yX2Y2NCA9IE1hdGhfZmxvb3I7CiAgICB2YXIgX2xsdm1fcG93X2YzMiA9IE1hdGhfcG93OwogICAgdmFyIF9sbHZtX3Bvd19mNjQgPSBNYXRoX3BvdzsKCiAgICBmdW5jdGlvbiBfbGx2bV90cmFwKCkgewogICAgICAgIGFib3J0KCJ0cmFwISIpCiAgICB9CiAgICB2YXIgX3R6bmFtZSA9IFNUQVRJQ1RPUDsKICAgIFNUQVRJQ1RPUCArPSAxNjsKICAgIHZhciBfZGF5bGlnaHQgPSBTVEFUSUNUT1A7CiAgICBTVEFUSUNUT1AgKz0gMTY7CiAgICB2YXIgX3RpbWV6b25lID0gU1RBVElDVE9QOwogICAgU1RBVElDVE9QICs9IDE2OwoKICAgIGZ1bmN0aW9uIF90enNldCgpIHsKICAgICAgICBpZiAoX3R6c2V0LmNhbGxlZCkgcmV0dXJuOwogICAgICAgIF90enNldC5jYWxsZWQgPSB0cnVlOwogICAgICAgIEhFQVAzMltfdGltZXpvbmUgPj4gMl0gPSAobmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDsKICAgICAgICB2YXIgd2ludGVyID0gbmV3IERhdGUoMmUzLCAwLCAxKTsKICAgICAgICB2YXIgc3VtbWVyID0gbmV3IERhdGUoMmUzLCA2LCAxKTsKICAgICAgICBIRUFQMzJbX2RheWxpZ2h0ID4+IDJdID0gTnVtYmVyKHdpbnRlci5nZXRUaW1lem9uZU9mZnNldCgpICE9IHN1bW1lci5nZXRUaW1lem9uZU9mZnNldCgpKTsKCiAgICAgICAgZnVuY3Rpb24gZXh0cmFjdFpvbmUoZGF0ZSkgewogICAgICAgICAgICB2YXIgbWF0Y2ggPSBkYXRlLnRvVGltZVN0cmluZygpLm1hdGNoKC9cKChbQS1aYS16IF0rKVwpJC8pOwogICAgICAgICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXSA6ICJHTVQiCiAgICAgICAgfQogICAgICAgIHZhciB3aW50ZXJOYW1lID0gZXh0cmFjdFpvbmUod2ludGVyKTsKICAgICAgICB2YXIgc3VtbWVyTmFtZSA9IGV4dHJhY3Rab25lKHN1bW1lcik7CiAgICAgICAgdmFyIHdpbnRlck5hbWVQdHIgPSBhbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcod2ludGVyTmFtZSksICJpOCIsIEFMTE9DX05PUk1BTCk7CiAgICAgICAgdmFyIHN1bW1lck5hbWVQdHIgPSBhbGxvY2F0ZShpbnRBcnJheUZyb21TdHJpbmcoc3VtbWVyTmFtZSksICJpOCIsIEFMTE9DX05PUk1BTCk7CiAgICAgICAgaWYgKHN1bW1lci5nZXRUaW1lem9uZU9mZnNldCgpIDwgd2ludGVyLmdldFRpbWV6b25lT2Zmc2V0KCkpIHsKICAgICAgICAgICAgSEVBUDMyW190em5hbWUgPj4gMl0gPSB3aW50ZXJOYW1lUHRyOwogICAgICAgICAgICBIRUFQMzJbX3R6bmFtZSArIDQgPj4gMl0gPSBzdW1tZXJOYW1lUHRyCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgSEVBUDMyW190em5hbWUgPj4gMl0gPSBzdW1tZXJOYW1lUHRyOwogICAgICAgICAgICBIRUFQMzJbX3R6bmFtZSArIDQgPj4gMl0gPSB3aW50ZXJOYW1lUHRyCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIF9sb2NhbHRpbWVfcih0aW1lLCB0bVB0cikgewogICAgICAgIF90enNldCgpOwogICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoSEVBUDMyW3RpbWUgPj4gMl0gKiAxZTMpOwogICAgICAgIEhFQVAzMlt0bVB0ciA+PiAyXSA9IGRhdGUuZ2V0U2Vjb25kcygpOwogICAgICAgIEhFQVAzMlt0bVB0ciArIDQgPj4gMl0gPSBkYXRlLmdldE1pbnV0ZXMoKTsKICAgICAgICBIRUFQMzJbdG1QdHIgKyA4ID4+IDJdID0gZGF0ZS5nZXRIb3VycygpOwogICAgICAgIEhFQVAzMlt0bVB0ciArIDEyID4+IDJdID0gZGF0ZS5nZXREYXRlKCk7CiAgICAgICAgSEVBUDMyW3RtUHRyICsgMTYgPj4gMl0gPSBkYXRlLmdldE1vbnRoKCk7CiAgICAgICAgSEVBUDMyW3RtUHRyICsgMjAgPj4gMl0gPSBkYXRlLmdldEZ1bGxZZWFyKCkgLSAxOTAwOwogICAgICAgIEhFQVAzMlt0bVB0ciArIDI0ID4+IDJdID0gZGF0ZS5nZXREYXkoKTsKICAgICAgICB2YXIgc3RhcnQgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIDAsIDEpOwogICAgICAgIHZhciB5ZGF5ID0gKGRhdGUuZ2V0VGltZSgpIC0gc3RhcnQuZ2V0VGltZSgpKSAvICgxZTMgKiA2MCAqIDYwICogMjQpIHwgMDsKICAgICAgICBIRUFQMzJbdG1QdHIgKyAyOCA+PiAyXSA9IHlkYXk7CiAgICAgICAgSEVBUDMyW3RtUHRyICsgMzYgPj4gMl0gPSAtKGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwKTsKICAgICAgICB2YXIgc3VtbWVyT2Zmc2V0ID0gKG5ldyBEYXRlKDJlMywgNiwgMSkpLmdldFRpbWV6b25lT2Zmc2V0KCk7CiAgICAgICAgdmFyIHdpbnRlck9mZnNldCA9IHN0YXJ0LmdldFRpbWV6b25lT2Zmc2V0KCk7CiAgICAgICAgdmFyIGRzdCA9IChzdW1tZXJPZmZzZXQgIT0gd2ludGVyT2Zmc2V0ICYmIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSA9PSBNYXRoLm1pbih3aW50ZXJPZmZzZXQsIHN1bW1lck9mZnNldCkpIHwgMDsKICAgICAgICBIRUFQMzJbdG1QdHIgKyAzMiA+PiAyXSA9IGRzdDsKICAgICAgICB2YXIgem9uZVB0ciA9IEhFQVAzMltfdHpuYW1lICsgKGRzdCA/IDQgOiAwKSA+PiAyXTsKICAgICAgICBIRUFQMzJbdG1QdHIgKyA0MCA+PiAyXSA9IHpvbmVQdHI7CiAgICAgICAgcmV0dXJuIHRtUHRyCiAgICB9CgogICAgZnVuY3Rpb24gX2xvY2FsdGltZSh0aW1lKSB7CiAgICAgICAgcmV0dXJuIF9sb2NhbHRpbWVfcih0aW1lLCBfX190bV9jdXJyZW50KQogICAgfQoKICAgIGZ1bmN0aW9uIF9sb25nam1wKGVudiwgdmFsdWUpIHsKICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oZW52LCB2YWx1ZSB8fCAxKTsKICAgICAgICB0aHJvdyAibG9uZ2ptcCIKICAgIH0KCiAgICBmdW5jdGlvbiBfZW1zY3JpcHRlbl9tZW1jcHlfYmlnKGRlc3QsIHNyYywgbnVtKSB7CiAgICAgICAgSEVBUFU4LnNldChIRUFQVTguc3ViYXJyYXkoc3JjLCBzcmMgKyBudW0pLCBkZXN0KTsKICAgICAgICByZXR1cm4gZGVzdAogICAgfQoKICAgIGZ1bmN0aW9uIF9ta3RpbWUodG1QdHIpIHsKICAgICAgICBfdHpzZXQoKTsKICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKEhFQVAzMlt0bVB0ciArIDIwID4+IDJdICsgMTkwMCwgSEVBUDMyW3RtUHRyICsgMTYgPj4gMl0sIEhFQVAzMlt0bVB0ciArIDEyID4+IDJdLCBIRUFQMzJbdG1QdHIgKyA4ID4+IDJdLCBIRUFQMzJbdG1QdHIgKyA0ID4+IDJdLCBIRUFQMzJbdG1QdHIgPj4gMl0sIDApOwogICAgICAgIHZhciBkc3QgPSBIRUFQMzJbdG1QdHIgKyAzMiA+PiAyXTsKICAgICAgICB2YXIgZ3Vlc3NlZE9mZnNldCA9IGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKTsKICAgICAgICB2YXIgc3RhcnQgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIDAsIDEpOwogICAgICAgIHZhciBzdW1tZXJPZmZzZXQgPSAobmV3IERhdGUoMmUzLCA2LCAxKSkuZ2V0VGltZXpvbmVPZmZzZXQoKTsKICAgICAgICB2YXIgd2ludGVyT2Zmc2V0ID0gc3RhcnQuZ2V0VGltZXpvbmVPZmZzZXQoKTsKICAgICAgICB2YXIgZHN0T2Zmc2V0ID0gTWF0aC5taW4od2ludGVyT2Zmc2V0LCBzdW1tZXJPZmZzZXQpOwogICAgICAgIGlmIChkc3QgPCAwKSB7CiAgICAgICAgICAgIEhFQVAzMlt0bVB0ciArIDMyID4+IDJdID0gTnVtYmVyKHN1bW1lck9mZnNldCAhPSB3aW50ZXJPZmZzZXQgJiYgZHN0T2Zmc2V0ID09IGd1ZXNzZWRPZmZzZXQpCiAgICAgICAgfSBlbHNlIGlmIChkc3QgPiAwICE9IChkc3RPZmZzZXQgPT0gZ3Vlc3NlZE9mZnNldCkpIHsKICAgICAgICAgICAgdmFyIG5vbkRzdE9mZnNldCA9IE1hdGgubWF4KHdpbnRlck9mZnNldCwgc3VtbWVyT2Zmc2V0KTsKICAgICAgICAgICAgdmFyIHRydWVPZmZzZXQgPSBkc3QgPiAwID8gZHN0T2Zmc2V0IDogbm9uRHN0T2Zmc2V0OwogICAgICAgICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyAodHJ1ZU9mZnNldCAtIGd1ZXNzZWRPZmZzZXQpICogNmU0KQogICAgICAgIH0KICAgICAgICBIRUFQMzJbdG1QdHIgKyAyNCA+PiAyXSA9IGRhdGUuZ2V0RGF5KCk7CiAgICAgICAgdmFyIHlkYXkgPSAoZGF0ZS5nZXRUaW1lKCkgLSBzdGFydC5nZXRUaW1lKCkpIC8gKDFlMyAqIDYwICogNjAgKiAyNCkgfCAwOwogICAgICAgIEhFQVAzMlt0bVB0ciArIDI4ID4+IDJdID0geWRheTsKICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCkgLyAxZTMgfCAwCiAgICB9CgogICAgZnVuY3Rpb24gX3B0aHJlYWRfYXR0cl9kZXN0cm95KGF0dHIpIHsKICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX2F0dHJfaW5pdChhdHRyKSB7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfcHRocmVhZF9jb25kX2Rlc3Ryb3koKSB7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfcHRocmVhZF9jb25kX2luaXQoKSB7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfcHRocmVhZF9jb25kX3NpZ25hbCgpIHsKICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgewogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX3B0aHJlYWRfY29uZF93YWl0KCkgewogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX3B0aHJlYWRfY3JlYXRlKCkgewogICAgICAgIHJldHVybiAxMQogICAgfQoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX2RldGFjaCgpIHt9CiAgICB2YXIgUFRIUkVBRF9TUEVDSUZJQyA9IHt9OwoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX2dldHNwZWNpZmljKGtleSkgewogICAgICAgIHJldHVybiBQVEhSRUFEX1NQRUNJRklDW2tleV0gfHwgMAogICAgfQogICAgdmFyIFBUSFJFQURfU1BFQ0lGSUNfTkVYVF9LRVkgPSAxOwoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX2tleV9jcmVhdGUoa2V5LCBkZXN0cnVjdG9yKSB7CiAgICAgICAgaWYgKGtleSA9PSAwKSB7CiAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSU5WQUwKICAgICAgICB9CiAgICAgICAgSEVBUDMyW2tleSA+PiAyXSA9IFBUSFJFQURfU1BFQ0lGSUNfTkVYVF9LRVk7CiAgICAgICAgUFRIUkVBRF9TUEVDSUZJQ1tQVEhSRUFEX1NQRUNJRklDX05FWFRfS0VZXSA9IDA7CiAgICAgICAgUFRIUkVBRF9TUEVDSUZJQ19ORVhUX0tFWSsrOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX3B0aHJlYWRfa2V5X2RlbGV0ZShrZXkpIHsKICAgICAgICBpZiAoa2V5IGluIFBUSFJFQURfU1BFQ0lGSUMpIHsKICAgICAgICAgICAgZGVsZXRlIFBUSFJFQURfU1BFQ0lGSUNba2V5XTsKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVJTlZBTAogICAgfQoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX211dGV4X2Rlc3Ryb3koKSB7fQoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX211dGV4X2luaXQoKSB7fQoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX211dGV4YXR0cl9kZXN0cm95KCkge30KCiAgICBmdW5jdGlvbiBfcHRocmVhZF9tdXRleGF0dHJfaW5pdCgpIHt9CgogICAgZnVuY3Rpb24gX3B0aHJlYWRfbXV0ZXhhdHRyX3NldHByb3RvY29sKCkge30KCiAgICBmdW5jdGlvbiBfcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgpIHt9CgogICAgZnVuY3Rpb24gX3B0aHJlYWRfb25jZShwdHIsIGZ1bmMpIHsKICAgICAgICBpZiAoIV9wdGhyZWFkX29uY2Uuc2VlbikgX3B0aHJlYWRfb25jZS5zZWVuID0ge307CiAgICAgICAgaWYgKHB0ciBpbiBfcHRocmVhZF9vbmNlLnNlZW4pIHJldHVybjsKICAgICAgICBNb2R1bGVbImR5bkNhbGxfdiJdKGZ1bmMpOwogICAgICAgIF9wdGhyZWFkX29uY2Uuc2VlbltwdHJdID0gMQogICAgfQoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX3J3bG9ja19pbml0KCkgewogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX3B0aHJlYWRfcndsb2NrX3JkbG9jaygpIHsKICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9wdGhyZWFkX3J3bG9ja191bmxvY2soKSB7CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfcHRocmVhZF9yd2xvY2tfd3Jsb2NrKCkgewogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX3B0aHJlYWRfc2V0c3BlY2lmaWMoa2V5LCB2YWx1ZSkgewogICAgICAgIGlmICghKGtleSBpbiBQVEhSRUFEX1NQRUNJRklDKSkgewogICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlOVkFMCiAgICAgICAgfQogICAgICAgIFBUSFJFQURfU1BFQ0lGSUNba2V5XSA9IHZhbHVlOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX3NjaGVkX3lpZWxkKCkgewogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX3NldGVudihlbnZuYW1lLCBlbnZ2YWwsIG92ZXJ3cml0ZSkgewogICAgICAgIGlmIChlbnZuYW1lID09PSAwKSB7CiAgICAgICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7CiAgICAgICAgICAgIHJldHVybiAtMQogICAgICAgIH0KICAgICAgICB2YXIgbmFtZSA9IFBvaW50ZXJfc3RyaW5naWZ5KGVudm5hbWUpOwogICAgICAgIHZhciB2YWwgPSBQb2ludGVyX3N0cmluZ2lmeShlbnZ2YWwpOwogICAgICAgIGlmIChuYW1lID09PSAiIiB8fCBuYW1lLmluZGV4T2YoIj0iKSAhPT0gLTEpIHsKICAgICAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUlOVkFMKTsKICAgICAgICAgICAgcmV0dXJuIC0xCiAgICAgICAgfQogICAgICAgIGlmIChFTlYuaGFzT3duUHJvcGVydHkobmFtZSkgJiYgIW92ZXJ3cml0ZSkgcmV0dXJuIDA7CiAgICAgICAgRU5WW25hbWVdID0gdmFsOwogICAgICAgIF9fX2J1aWxkRW52aXJvbm1lbnQoRU5WKTsKICAgICAgICByZXR1cm4gMAogICAgfQoKICAgIGZ1bmN0aW9uIF9zaWdhY3Rpb24oc2lnbnVtLCBhY3QsIG9sZGFjdCkgewogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX3NpZ2VtcHR5c2V0KHNldCkgewogICAgICAgIEhFQVAzMltzZXQgPj4gMl0gPSAwOwogICAgICAgIHJldHVybiAwCiAgICB9CgogICAgZnVuY3Rpb24gX19pc0xlYXBZZWFyKHllYXIpIHsKICAgICAgICByZXR1cm4geWVhciAlIDQgPT09IDAgJiYgKHllYXIgJSAxMDAgIT09IDAgfHwgeWVhciAlIDQwMCA9PT0gMCkKICAgIH0KCiAgICBmdW5jdGlvbiBfX2FycmF5U3VtKGFycmF5LCBpbmRleCkgewogICAgICAgIHZhciBzdW0gPSAwOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDw9IGluZGV4OyBzdW0gKz0gYXJyYXlbaSsrXSk7CiAgICAgICAgcmV0dXJuIHN1bQogICAgfQogICAgdmFyIF9fTU9OVEhfREFZU19MRUFQID0gWzMxLCAyOSwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdOwogICAgdmFyIF9fTU9OVEhfREFZU19SRUdVTEFSID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdOwoKICAgIGZ1bmN0aW9uIF9fYWRkRGF5cyhkYXRlLCBkYXlzKSB7CiAgICAgICAgdmFyIG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7CiAgICAgICAgd2hpbGUgKGRheXMgPiAwKSB7CiAgICAgICAgICAgIHZhciBsZWFwID0gX19pc0xlYXBZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSk7CiAgICAgICAgICAgIHZhciBjdXJyZW50TW9udGggPSBuZXdEYXRlLmdldE1vbnRoKCk7CiAgICAgICAgICAgIHZhciBkYXlzSW5DdXJyZW50TW9udGggPSAobGVhcCA/IF9fTU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIpW2N1cnJlbnRNb250aF07CiAgICAgICAgICAgIGlmIChkYXlzID4gZGF5c0luQ3VycmVudE1vbnRoIC0gbmV3RGF0ZS5nZXREYXRlKCkpIHsKICAgICAgICAgICAgICAgIGRheXMgLT0gZGF5c0luQ3VycmVudE1vbnRoIC0gbmV3RGF0ZS5nZXREYXRlKCkgKyAxOwogICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKDEpOwogICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRNb250aCA8IDExKSB7CiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aChjdXJyZW50TW9udGggKyAxKQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldE1vbnRoKDApOwogICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0RnVsbFllYXIobmV3RGF0ZS5nZXRGdWxsWWVhcigpICsgMSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUoKSArIGRheXMpOwogICAgICAgICAgICAgICAgcmV0dXJuIG5ld0RhdGUKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3RGF0ZQogICAgfQoKICAgIGZ1bmN0aW9uIF9zdHJmdGltZShzLCBtYXhzaXplLCBmb3JtYXQsIHRtKSB7CiAgICAgICAgdmFyIHRtX3pvbmUgPSBIRUFQMzJbdG0gKyA0MCA+PiAyXTsKICAgICAgICB2YXIgZGF0ZSA9IHsKICAgICAgICAgICAgdG1fc2VjOiBIRUFQMzJbdG0gPj4gMl0sCiAgICAgICAgICAgIHRtX21pbjogSEVBUDMyW3RtICsgNCA+PiAyXSwKICAgICAgICAgICAgdG1faG91cjogSEVBUDMyW3RtICsgOCA+PiAyXSwKICAgICAgICAgICAgdG1fbWRheTogSEVBUDMyW3RtICsgMTIgPj4gMl0sCiAgICAgICAgICAgIHRtX21vbjogSEVBUDMyW3RtICsgMTYgPj4gMl0sCiAgICAgICAgICAgIHRtX3llYXI6IEhFQVAzMlt0bSArIDIwID4+IDJdLAogICAgICAgICAgICB0bV93ZGF5OiBIRUFQMzJbdG0gKyAyNCA+PiAyXSwKICAgICAgICAgICAgdG1feWRheTogSEVBUDMyW3RtICsgMjggPj4gMl0sCiAgICAgICAgICAgIHRtX2lzZHN0OiBIRUFQMzJbdG0gKyAzMiA+PiAyXSwKICAgICAgICAgICAgdG1fZ210b2ZmOiBIRUFQMzJbdG0gKyAzNiA+PiAyXSwKICAgICAgICAgICAgdG1fem9uZTogdG1fem9uZSA/IFBvaW50ZXJfc3RyaW5naWZ5KHRtX3pvbmUpIDogIiIKICAgICAgICB9OwogICAgICAgIHZhciBwYXR0ZXJuID0gUG9pbnRlcl9zdHJpbmdpZnkoZm9ybWF0KTsKICAgICAgICB2YXIgRVhQQU5TSU9OX1JVTEVTXzEgPSB7CiAgICAgICAgICAgICIlYyI6ICIlYSAlYiAlZCAlSDolTTolUyAlWSIsCiAgICAgICAgICAgICIlRCI6ICIlbS8lZC8leSIsCiAgICAgICAgICAgICIlRiI6ICIlWS0lbS0lZCIsCiAgICAgICAgICAgICIlaCI6ICIlYiIsCiAgICAgICAgICAgICIlciI6ICIlSTolTTolUyAlcCIsCiAgICAgICAgICAgICIlUiI6ICIlSDolTSIsCiAgICAgICAgICAgICIlVCI6ICIlSDolTTolUyIsCiAgICAgICAgICAgICIleCI6ICIlbS8lZC8leSIsCiAgICAgICAgICAgICIlWCI6ICIlSDolTTolUyIKICAgICAgICB9OwogICAgICAgIGZvciAodmFyIHJ1bGUgaW4gRVhQQU5TSU9OX1JVTEVTXzEpIHsKICAgICAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZShuZXcgUmVnRXhwKHJ1bGUsICJnIiksIEVYUEFOU0lPTl9SVUxFU18xW3J1bGVdKQogICAgICAgIH0KICAgICAgICB2YXIgV0VFS0RBWVMgPSBbIlN1bmRheSIsICJNb25kYXkiLCAiVHVlc2RheSIsICJXZWRuZXNkYXkiLCAiVGh1cnNkYXkiLCAiRnJpZGF5IiwgIlNhdHVyZGF5Il07CiAgICAgICAgdmFyIE1PTlRIUyA9IFsiSmFudWFyeSIsICJGZWJydWFyeSIsICJNYXJjaCIsICJBcHJpbCIsICJNYXkiLCAiSnVuZSIsICJKdWx5IiwgIkF1Z3VzdCIsICJTZXB0ZW1iZXIiLCAiT2N0b2JlciIsICJOb3ZlbWJlciIsICJEZWNlbWJlciJdOwoKICAgICAgICBmdW5jdGlvbiBsZWFkaW5nU29tZXRoaW5nKHZhbHVlLCBkaWdpdHMsIGNoYXJhY3RlcikgewogICAgICAgICAgICB2YXIgc3RyID0gdHlwZW9mIHZhbHVlID09PSAibnVtYmVyIiA/IHZhbHVlLnRvU3RyaW5nKCkgOiB2YWx1ZSB8fCAiIjsKICAgICAgICAgICAgd2hpbGUgKHN0ci5sZW5ndGggPCBkaWdpdHMpIHsKICAgICAgICAgICAgICAgIHN0ciA9IGNoYXJhY3RlclswXSArIHN0cgogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzdHIKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGxlYWRpbmdOdWxscyh2YWx1ZSwgZGlnaXRzKSB7CiAgICAgICAgICAgIHJldHVybiBsZWFkaW5nU29tZXRoaW5nKHZhbHVlLCBkaWdpdHMsICIwIikKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVCeURheShkYXRlMSwgZGF0ZTIpIHsKICAgICAgICAgICAgZnVuY3Rpb24gc2duKHZhbHVlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPCAwID8gLTEgOiB2YWx1ZSA+IDAgPyAxIDogMAogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBjb21wYXJlOwogICAgICAgICAgICBpZiAoKGNvbXBhcmUgPSBzZ24oZGF0ZTEuZ2V0RnVsbFllYXIoKSAtIGRhdGUyLmdldEZ1bGxZZWFyKCkpKSA9PT0gMCkgewogICAgICAgICAgICAgICAgaWYgKChjb21wYXJlID0gc2duKGRhdGUxLmdldE1vbnRoKCkgLSBkYXRlMi5nZXRNb250aCgpKSkgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICBjb21wYXJlID0gc2duKGRhdGUxLmdldERhdGUoKSAtIGRhdGUyLmdldERhdGUoKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gY29tcGFyZQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZ2V0Rmlyc3RXZWVrU3RhcnREYXRlKGphbkZvdXJ0aCkgewogICAgICAgICAgICBzd2l0Y2ggKGphbkZvdXJ0aC5nZXREYXkoKSkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKSAtIDEsIDExLCAyOSk7CiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGphbkZvdXJ0aDsKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCksIDAsIDMpOwogICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKSwgMCwgMik7CiAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLCAwLCAxKTsKICAgICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCkgLSAxLCAxMSwgMzEpOwogICAgICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIoKSAtIDEsIDExLCAzMCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZ2V0V2Vla0Jhc2VkWWVhcihkYXRlKSB7CiAgICAgICAgICAgIHZhciB0aGlzRGF0ZSA9IF9fYWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRtX3llYXIgKyAxOTAwLCAwLCAxKSwgZGF0ZS50bV95ZGF5KTsKICAgICAgICAgICAgdmFyIGphbkZvdXJ0aFRoaXNZZWFyID0gbmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSwgMCwgNCk7CiAgICAgICAgICAgIHZhciBqYW5Gb3VydGhOZXh0WWVhciA9IG5ldyBEYXRlKHRoaXNEYXRlLmdldEZ1bGxZZWFyKCkgKyAxLCAwLCA0KTsKICAgICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoVGhpc1llYXIpOwogICAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnROZXh0WWVhciA9IGdldEZpcnN0V2Vla1N0YXJ0RGF0ZShqYW5Gb3VydGhOZXh0WWVhcik7CiAgICAgICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RXZWVrU3RhcnRUaGlzWWVhciwgdGhpc0RhdGUpIDw9IDApIHsKICAgICAgICAgICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RXZWVrU3RhcnROZXh0WWVhciwgdGhpc0RhdGUpIDw9IDApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKSArIDEKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNEYXRlLmdldEZ1bGxZZWFyKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpIC0gMQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZhciBFWFBBTlNJT05fUlVMRVNfMiA9IHsKICAgICAgICAgICAgIiVhIjogKGZ1bmN0aW9uKGRhdGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBXRUVLREFZU1tkYXRlLnRtX3dkYXldLnN1YnN0cmluZygwLCAzKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgIiVBIjogKGZ1bmN0aW9uKGRhdGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBXRUVLREFZU1tkYXRlLnRtX3dkYXldCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAiJWIiOiAoZnVuY3Rpb24oZGF0ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIE1PTlRIU1tkYXRlLnRtX21vbl0uc3Vic3RyaW5nKDAsIDMpCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAiJUIiOiAoZnVuY3Rpb24oZGF0ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIE1PTlRIU1tkYXRlLnRtX21vbl0KICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlQyI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICB2YXIgeWVhciA9IGRhdGUudG1feWVhciArIDE5MDA7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKHllYXIgLyAxMDAgfCAwLCAyKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgIiVkIjogKGZ1bmN0aW9uKGRhdGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9tZGF5LCAyKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgIiVlIjogKGZ1bmN0aW9uKGRhdGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWFkaW5nU29tZXRoaW5nKGRhdGUudG1fbWRheSwgMiwgIiAiKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgIiVnIjogKGZ1bmN0aW9uKGRhdGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBnZXRXZWVrQmFzZWRZZWFyKGRhdGUpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAiJUciOiAoZnVuY3Rpb24oZGF0ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGdldFdlZWtCYXNlZFllYXIoZGF0ZSkKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlSCI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUudG1faG91ciwgMikKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlSSI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICB2YXIgdHdlbHZlSG91ciA9IGRhdGUudG1faG91cjsKICAgICAgICAgICAgICAgIGlmICh0d2VsdmVIb3VyID09IDApIHR3ZWx2ZUhvdXIgPSAxMjsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR3ZWx2ZUhvdXIgPiAxMikgdHdlbHZlSG91ciAtPSAxMjsKICAgICAgICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHModHdlbHZlSG91ciwgMikKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlaiI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUudG1fbWRheSArIF9fYXJyYXlTdW0oX19pc0xlYXBZZWFyKGRhdGUudG1feWVhciArIDE5MDApID8gX19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZGF0ZS50bV9tb24gLSAxKSwgMykKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlbSI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUudG1fbW9uICsgMSwgMikKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlTSI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKGRhdGUudG1fbWluLCAyKQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgIiVuIjogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgcmV0dXJuICJcbiIKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlcCI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICBpZiAoZGF0ZS50bV9ob3VyID49IDAgJiYgZGF0ZS50bV9ob3VyIDwgMTIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkFNIgogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlBNIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgIiVTIjogKGZ1bmN0aW9uKGRhdGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoZGF0ZS50bV9zZWMsIDIpCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAiJXQiOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gIlx0IgogICAgICAgICAgICB9KSwKICAgICAgICAgICAgIiV1IjogKGZ1bmN0aW9uKGRhdGUpIHsKICAgICAgICAgICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIgKyAxOTAwLCBkYXRlLnRtX21vbiArIDEsIGRhdGUudG1fbWRheSwgMCwgMCwgMCwgMCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZGF5LmdldERheSgpIHx8IDcKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlVSI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICB2YXIgamFuRmlyc3QgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIgKyAxOTAwLCAwLCAxKTsKICAgICAgICAgICAgICAgIHZhciBmaXJzdFN1bmRheSA9IGphbkZpcnN0LmdldERheSgpID09PSAwID8gamFuRmlyc3QgOiBfX2FkZERheXMoamFuRmlyc3QsIDcgLSBqYW5GaXJzdC5nZXREYXkoKSk7CiAgICAgICAgICAgICAgICB2YXIgZW5kRGF0ZSA9IG5ldyBEYXRlKGRhdGUudG1feWVhciArIDE5MDAsIGRhdGUudG1fbW9uLCBkYXRlLnRtX21kYXkpOwogICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdFN1bmRheSwgZW5kRGF0ZSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoID0gX19hcnJheVN1bShfX2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxsWWVhcigpKSA/IF9fTU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERhdGUuZ2V0TW9udGgoKSAtIDEpIC0gMzE7CiAgICAgICAgICAgICAgICAgICAgdmFyIGZpcnN0U3VuZGF5VW50aWxFbmRKYW51YXJ5ID0gMzEgLSBmaXJzdFN1bmRheS5nZXREYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRheXMgPSBmaXJzdFN1bmRheVVudGlsRW5kSmFudWFyeSArIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoICsgZW5kRGF0ZS5nZXREYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmNlaWwoZGF5cyAvIDcpLCAyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVCeURheShmaXJzdFN1bmRheSwgamFuRmlyc3QpID09PSAwID8gIjAxIiA6ICIwMCIKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlViI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICB2YXIgamFuRm91cnRoVGhpc1llYXIgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIgKyAxOTAwLCAwLCA0KTsKICAgICAgICAgICAgICAgIHZhciBqYW5Gb3VydGhOZXh0WWVhciA9IG5ldyBEYXRlKGRhdGUudG1feWVhciArIDE5MDEsIDAsIDQpOwogICAgICAgICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoVGhpc1llYXIpOwogICAgICAgICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0TmV4dFllYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwogICAgICAgICAgICAgICAgdmFyIGVuZERhdGUgPSBfX2FkZERheXMobmV3IERhdGUoZGF0ZS50bV95ZWFyICsgMTkwMCwgMCwgMSksIGRhdGUudG1feWRheSk7CiAgICAgICAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGVuZERhdGUsIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIpIDwgMCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAiNTMiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGZpcnN0V2Vla1N0YXJ0TmV4dFllYXIsIGVuZERhdGUpIDw9IDApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gIjAxIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRheXNEaWZmZXJlbmNlOwogICAgICAgICAgICAgICAgaWYgKGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIuZ2V0RnVsbFllYXIoKSA8IGRhdGUudG1feWVhciArIDE5MDApIHsKICAgICAgICAgICAgICAgICAgICBkYXlzRGlmZmVyZW5jZSA9IGRhdGUudG1feWRheSArIDMyIC0gZmlyc3RXZWVrU3RhcnRUaGlzWWVhci5nZXREYXRlKCkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZGF5c0RpZmZlcmVuY2UgPSBkYXRlLnRtX3lkYXkgKyAxIC0gZmlyc3RXZWVrU3RhcnRUaGlzWWVhci5nZXREYXRlKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5jZWlsKGRheXNEaWZmZXJlbmNlIC8gNyksIDIpCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAiJXciOiAoZnVuY3Rpb24oZGF0ZSkgewogICAgICAgICAgICAgICAgdmFyIGRheSA9IG5ldyBEYXRlKGRhdGUudG1feWVhciArIDE5MDAsIGRhdGUudG1fbW9uICsgMSwgZGF0ZS50bV9tZGF5LCAwLCAwLCAwLCAwKTsKICAgICAgICAgICAgICAgIHJldHVybiBkYXkuZ2V0RGF5KCkKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlVyI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICB2YXIgamFuRmlyc3QgPSBuZXcgRGF0ZShkYXRlLnRtX3llYXIsIDAsIDEpOwogICAgICAgICAgICAgICAgdmFyIGZpcnN0TW9uZGF5ID0gamFuRmlyc3QuZ2V0RGF5KCkgPT09IDEgPyBqYW5GaXJzdCA6IF9fYWRkRGF5cyhqYW5GaXJzdCwgamFuRmlyc3QuZ2V0RGF5KCkgPT09IDAgPyAxIDogNyAtIGphbkZpcnN0LmdldERheSgpICsgMSk7CiAgICAgICAgICAgICAgICB2YXIgZW5kRGF0ZSA9IG5ldyBEYXRlKGRhdGUudG1feWVhciArIDE5MDAsIGRhdGUudG1fbW9uLCBkYXRlLnRtX21kYXkpOwogICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdE1vbmRheSwgZW5kRGF0ZSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoID0gX19hcnJheVN1bShfX2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxsWWVhcigpKSA/IF9fTU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERhdGUuZ2V0TW9udGgoKSAtIDEpIC0gMzE7CiAgICAgICAgICAgICAgICAgICAgdmFyIGZpcnN0TW9uZGF5VW50aWxFbmRKYW51YXJ5ID0gMzEgLSBmaXJzdE1vbmRheS5nZXREYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRheXMgPSBmaXJzdE1vbmRheVVudGlsRW5kSmFudWFyeSArIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1vbnRoICsgZW5kRGF0ZS5nZXREYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhNYXRoLmNlaWwoZGF5cyAvIDcpLCAyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVCeURheShmaXJzdE1vbmRheSwgamFuRmlyc3QpID09PSAwID8gIjAxIiA6ICIwMCIKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIleSI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGRhdGUudG1feWVhciArIDE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAiJVkiOiAoZnVuY3Rpb24oZGF0ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUudG1feWVhciArIDE5MDAKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIleiI6IChmdW5jdGlvbihkYXRlKSB7CiAgICAgICAgICAgICAgICB2YXIgb2ZmID0gZGF0ZS50bV9nbXRvZmY7CiAgICAgICAgICAgICAgICB2YXIgYWhlYWQgPSBvZmYgPj0gMDsKICAgICAgICAgICAgICAgIG9mZiA9IE1hdGguYWJzKG9mZikgLyA2MDsKICAgICAgICAgICAgICAgIG9mZiA9IG9mZiAvIDYwICogMTAwICsgb2ZmICUgNjA7CiAgICAgICAgICAgICAgICByZXR1cm4gKGFoZWFkID8gIisiIDogIi0iKSArIFN0cmluZygiMDAwMCIgKyBvZmYpLnNsaWNlKC00KQogICAgICAgICAgICB9KSwKICAgICAgICAgICAgIiVaIjogKGZ1bmN0aW9uKGRhdGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLnRtX3pvbmUKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICIlJSI6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHJldHVybiAiJSIKICAgICAgICAgICAgfSkKICAgICAgICB9OwogICAgICAgIGZvciAodmFyIHJ1bGUgaW4gRVhQQU5TSU9OX1JVTEVTXzIpIHsKICAgICAgICAgICAgaWYgKHBhdHRlcm4uaW5kZXhPZihydWxlKSA+PSAwKSB7CiAgICAgICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKG5ldyBSZWdFeHAocnVsZSwgImciKSwgRVhQQU5TSU9OX1JVTEVTXzJbcnVsZV0oZGF0ZSkpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdmFyIGJ5dGVzID0gaW50QXJyYXlGcm9tU3RyaW5nKHBhdHRlcm4sIGZhbHNlKTsKICAgICAgICBpZiAoYnl0ZXMubGVuZ3RoID4gbWF4c2l6ZSkgewogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0KICAgICAgICB3cml0ZUFycmF5VG9NZW1vcnkoYnl0ZXMsIHMpOwogICAgICAgIHJldHVybiBieXRlcy5sZW5ndGggLSAxCiAgICB9CgogICAgZnVuY3Rpb24gX3N5c2NvbmYobmFtZSkgewogICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICBjYXNlIDMwOgogICAgICAgICAgICAgICAgcmV0dXJuIFBBR0VfU0laRTsKICAgICAgICAgICAgY2FzZSA4NToKICAgICAgICAgICAgICAgIHZhciBtYXhIZWFwU2l6ZSA9IDIgKiAxMDI0ICogMTAyNCAqIDEwMjQgLSA2NTUzNjsKICAgICAgICAgICAgICAgIHJldHVybiBtYXhIZWFwU2l6ZSAvIFBBR0VfU0laRTsKICAgICAgICAgICAgY2FzZSAxMzI6CiAgICAgICAgICAgIGNhc2UgMTMzOgogICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICBjYXNlIDEzNzoKICAgICAgICAgICAgY2FzZSAxMzg6CiAgICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgIGNhc2UgMjM1OgogICAgICAgICAgICBjYXNlIDE2OgogICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICBjYXNlIDE4OgogICAgICAgICAgICBjYXNlIDE5OgogICAgICAgICAgICBjYXNlIDIwOgogICAgICAgICAgICBjYXNlIDE0OToKICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgY2FzZSAyMzY6CiAgICAgICAgICAgIGNhc2UgMTUzOgogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgIGNhc2UgMjE6CiAgICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgIGNhc2UgMTU5OgogICAgICAgICAgICBjYXNlIDE1NDoKICAgICAgICAgICAgY2FzZSAxNDoKICAgICAgICAgICAgY2FzZSA3NzoKICAgICAgICAgICAgY2FzZSA3ODoKICAgICAgICAgICAgY2FzZSAxMzk6CiAgICAgICAgICAgIGNhc2UgODA6CiAgICAgICAgICAgIGNhc2UgODE6CiAgICAgICAgICAgIGNhc2UgODI6CiAgICAgICAgICAgIGNhc2UgNjg6CiAgICAgICAgICAgIGNhc2UgNjc6CiAgICAgICAgICAgIGNhc2UgMTY0OgogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICBjYXNlIDI5OgogICAgICAgICAgICBjYXNlIDQ3OgogICAgICAgICAgICBjYXNlIDQ4OgogICAgICAgICAgICBjYXNlIDk1OgogICAgICAgICAgICBjYXNlIDUyOgogICAgICAgICAgICBjYXNlIDUxOgogICAgICAgICAgICBjYXNlIDQ2OgogICAgICAgICAgICAgICAgcmV0dXJuIDIwMDgwOTsKICAgICAgICAgICAgY2FzZSA3OToKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgICBjYXNlIDI0NjoKICAgICAgICAgICAgY2FzZSAxMjc6CiAgICAgICAgICAgIGNhc2UgMTI4OgogICAgICAgICAgICBjYXNlIDIzOgogICAgICAgICAgICBjYXNlIDI0OgogICAgICAgICAgICBjYXNlIDE2MDoKICAgICAgICAgICAgY2FzZSAxNjE6CiAgICAgICAgICAgIGNhc2UgMTgxOgogICAgICAgICAgICBjYXNlIDE4MjoKICAgICAgICAgICAgY2FzZSAyNDI6CiAgICAgICAgICAgIGNhc2UgMTgzOgogICAgICAgICAgICBjYXNlIDE4NDoKICAgICAgICAgICAgY2FzZSAyNDM6CiAgICAgICAgICAgIGNhc2UgMjQ0OgogICAgICAgICAgICBjYXNlIDI0NToKICAgICAgICAgICAgY2FzZSAxNjU6CiAgICAgICAgICAgIGNhc2UgMTc4OgogICAgICAgICAgICBjYXNlIDE3OToKICAgICAgICAgICAgY2FzZSA0OToKICAgICAgICAgICAgY2FzZSA1MDoKICAgICAgICAgICAgY2FzZSAxNjg6CiAgICAgICAgICAgIGNhc2UgMTY5OgogICAgICAgICAgICBjYXNlIDE3NToKICAgICAgICAgICAgY2FzZSAxNzA6CiAgICAgICAgICAgIGNhc2UgMTcxOgogICAgICAgICAgICBjYXNlIDE3MjoKICAgICAgICAgICAgY2FzZSA5NzoKICAgICAgICAgICAgY2FzZSA3NjoKICAgICAgICAgICAgY2FzZSAzMjoKICAgICAgICAgICAgY2FzZSAxNzM6CiAgICAgICAgICAgIGNhc2UgMzU6CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIGNhc2UgMTc2OgogICAgICAgICAgICBjYXNlIDE3NzoKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICBjYXNlIDE1NToKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICBjYXNlIDE1NzoKICAgICAgICAgICAgY2FzZSAxMjU6CiAgICAgICAgICAgIGNhc2UgMTI2OgogICAgICAgICAgICBjYXNlIDkyOgogICAgICAgICAgICBjYXNlIDkzOgogICAgICAgICAgICBjYXNlIDEyOToKICAgICAgICAgICAgY2FzZSAxMzA6CiAgICAgICAgICAgIGNhc2UgMTMxOgogICAgICAgICAgICBjYXNlIDk0OgogICAgICAgICAgICBjYXNlIDkxOgogICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgIGNhc2UgNzQ6CiAgICAgICAgICAgIGNhc2UgNjA6CiAgICAgICAgICAgIGNhc2UgNjk6CiAgICAgICAgICAgIGNhc2UgNzA6CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIHJldHVybiAxMDI0OwogICAgICAgICAgICBjYXNlIDMxOgogICAgICAgICAgICBjYXNlIDQyOgogICAgICAgICAgICBjYXNlIDcyOgogICAgICAgICAgICAgICAgcmV0dXJuIDMyOwogICAgICAgICAgICBjYXNlIDg3OgogICAgICAgICAgICBjYXNlIDI2OgogICAgICAgICAgICBjYXNlIDMzOgogICAgICAgICAgICAgICAgcmV0dXJuIDIxNDc0ODM2NDc7CiAgICAgICAgICAgIGNhc2UgMzQ6CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIHJldHVybiA0NzgzOTsKICAgICAgICAgICAgY2FzZSAzODoKICAgICAgICAgICAgY2FzZSAzNjoKICAgICAgICAgICAgICAgIHJldHVybiA5OTsKICAgICAgICAgICAgY2FzZSA0MzoKICAgICAgICAgICAgY2FzZSAzNzoKICAgICAgICAgICAgICAgIHJldHVybiAyMDQ4OwogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICByZXR1cm4gMjA5NzE1MjsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgcmV0dXJuIDY1NTM2OwogICAgICAgICAgICBjYXNlIDI4OgogICAgICAgICAgICAgICAgcmV0dXJuIDMyNzY4OwogICAgICAgICAgICBjYXNlIDQ0OgogICAgICAgICAgICAgICAgcmV0dXJuIDMyNzY3OwogICAgICAgICAgICBjYXNlIDc1OgogICAgICAgICAgICAgICAgcmV0dXJuIDE2Mzg0OwogICAgICAgICAgICBjYXNlIDM5OgogICAgICAgICAgICAgICAgcmV0dXJuIDFlMzsKICAgICAgICAgICAgY2FzZSA4OToKICAgICAgICAgICAgICAgIHJldHVybiA3MDA7CiAgICAgICAgICAgIGNhc2UgNzE6CiAgICAgICAgICAgICAgICByZXR1cm4gMjU2OwogICAgICAgICAgICBjYXNlIDQwOgogICAgICAgICAgICAgICAgcmV0dXJuIDI1NTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgcmV0dXJuIDEwMDsKICAgICAgICAgICAgY2FzZSAxODA6CiAgICAgICAgICAgICAgICByZXR1cm4gNjQ7CiAgICAgICAgICAgIGNhc2UgMjU6CiAgICAgICAgICAgICAgICByZXR1cm4gMjA7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIHJldHVybiAxNjsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgICAgcmV0dXJuIDY7CiAgICAgICAgICAgIGNhc2UgNzM6CiAgICAgICAgICAgICAgICByZXR1cm4gNDsKICAgICAgICAgICAgY2FzZSA4NDogewogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBuYXZpZ2F0b3IgPT09ICJvYmplY3QiKSByZXR1cm4gbmF2aWdhdG9yWyJoYXJkd2FyZUNvbmN1cnJlbmN5Il0gfHwgMTsKICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUlOVkFMKTsKICAgICAgICByZXR1cm4gLTEKICAgIH0KCiAgICBmdW5jdGlvbiBfdGltZShwdHIpIHsKICAgICAgICB2YXIgcmV0ID0gRGF0ZS5ub3coKSAvIDFlMyB8IDA7CiAgICAgICAgaWYgKHB0cikgewogICAgICAgICAgICBIRUFQMzJbcHRyID4+IDJdID0gcmV0CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXQKICAgIH0KCiAgICBmdW5jdGlvbiBfdW5zZXRlbnYobmFtZSkgewogICAgICAgIGlmIChuYW1lID09PSAwKSB7CiAgICAgICAgICAgIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7CiAgICAgICAgICAgIHJldHVybiAtMQogICAgICAgIH0KICAgICAgICBuYW1lID0gUG9pbnRlcl9zdHJpbmdpZnkobmFtZSk7CiAgICAgICAgaWYgKG5hbWUgPT09ICIiIHx8IG5hbWUuaW5kZXhPZigiPSIpICE9PSAtMSkgewogICAgICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FSU5WQUwpOwogICAgICAgICAgICByZXR1cm4gLTEKICAgICAgICB9CiAgICAgICAgaWYgKEVOVi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgewogICAgICAgICAgICBkZWxldGUgRU5WW25hbWVdOwogICAgICAgICAgICBfX19idWlsZEVudmlyb25tZW50KEVOVikKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDAKICAgIH0KCiAgICBmdW5jdGlvbiBfdXRpbWUocGF0aCwgdGltZXMpIHsKICAgICAgICB2YXIgdGltZTsKICAgICAgICBpZiAodGltZXMpIHsKICAgICAgICAgICAgdmFyIG9mZnNldCA9IDQ7CiAgICAgICAgICAgIHRpbWUgPSBIRUFQMzJbdGltZXMgKyBvZmZzZXQgPj4gMl07CiAgICAgICAgICAgIHRpbWUgKj0gMWUzCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGltZSA9IERhdGUubm93KCkKICAgICAgICB9CiAgICAgICAgcGF0aCA9IFBvaW50ZXJfc3RyaW5naWZ5KHBhdGgpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIEZTLnV0aW1lKHBhdGgsIHRpbWUsIHRpbWUpOwogICAgICAgICAgICByZXR1cm4gMAogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKICAgICAgICAgICAgcmV0dXJuIC0xCiAgICAgICAgfQogICAgfQogICAgRlMuc3RhdGljSW5pdCgpOwogICAgX19BVElOSVRfXy51bnNoaWZ0KChmdW5jdGlvbigpIHsKICAgICAgICBpZiAoIU1vZHVsZVsibm9GU0luaXQiXSAmJiAhRlMuaW5pdC5pbml0aWFsaXplZCkgRlMuaW5pdCgpCiAgICB9KSk7CiAgICBfX0FUTUFJTl9fLnB1c2goKGZ1bmN0aW9uKCkgewogICAgICAgIEZTLmlnbm9yZVBlcm1pc3Npb25zID0gZmFsc2UKICAgIH0pKTsKICAgIF9fQVRFWElUX18ucHVzaCgoZnVuY3Rpb24oKSB7CiAgICAgICAgRlMucXVpdCgpCiAgICB9KSk7CiAgICBNb2R1bGVbIkZTX2NyZWF0ZVBhdGgiXSA9IEZTLmNyZWF0ZVBhdGg7CiAgICBNb2R1bGVbIkZTX2NyZWF0ZURhdGFGaWxlIl0gPSBGUy5jcmVhdGVEYXRhRmlsZTsKICAgIF9fQVRJTklUX18udW5zaGlmdCgoZnVuY3Rpb24oKSB7CiAgICAgICAgVFRZLmluaXQoKQogICAgfSkpOwogICAgX19BVEVYSVRfXy5wdXNoKChmdW5jdGlvbigpIHsKICAgICAgICBUVFkuc2h1dGRvd24oKQogICAgfSkpOwogICAgaWYgKEVOVklST05NRU5UX0lTX05PREUpIHsKICAgICAgICB2YXIgZnMgPSByZXF1aXJlKCJmcyIpOwogICAgICAgIHZhciBOT0RFSlNfUEFUSCA9IHJlcXVpcmUoInBhdGgiKTsKICAgICAgICBOT0RFRlMuc3RhdGljSW5pdCgpCiAgICB9CiAgICBNb2R1bGVbInJlcXVlc3RGdWxsU2NyZWVuIl0gPSBmdW5jdGlvbiBNb2R1bGVfcmVxdWVzdEZ1bGxTY3JlZW4obG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcywgdnJEZXZpY2UpIHsKICAgICAgICBNb2R1bGUucHJpbnRFcnIoIk1vZHVsZS5yZXF1ZXN0RnVsbFNjcmVlbiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgY2FsbCBNb2R1bGUucmVxdWVzdEZ1bGxzY3JlZW4gaW5zdGVhZC4iKTsKICAgICAgICBNb2R1bGVbInJlcXVlc3RGdWxsU2NyZWVuIl0gPSBNb2R1bGVbInJlcXVlc3RGdWxsc2NyZWVuIl07CiAgICAgICAgQnJvd3Nlci5yZXF1ZXN0RnVsbFNjcmVlbihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzLCB2ckRldmljZSkKICAgIH07CiAgICBNb2R1bGVbInJlcXVlc3RGdWxsc2NyZWVuIl0gPSBmdW5jdGlvbiBNb2R1bGVfcmVxdWVzdEZ1bGxzY3JlZW4obG9ja1BvaW50ZXIsIHJlc2l6ZUNhbnZhcywgdnJEZXZpY2UpIHsKICAgICAgICBCcm93c2VyLnJlcXVlc3RGdWxsc2NyZWVuKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMsIHZyRGV2aWNlKQogICAgfTsKICAgIE1vZHVsZVsicmVxdWVzdEFuaW1hdGlvbkZyYW1lIl0gPSBmdW5jdGlvbiBNb2R1bGVfcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmMpIHsKICAgICAgICBCcm93c2VyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jKQogICAgfTsKICAgIE1vZHVsZVsic2V0Q2FudmFzU2l6ZSJdID0gZnVuY3Rpb24gTW9kdWxlX3NldENhbnZhc1NpemUod2lkdGgsIGhlaWdodCwgbm9VcGRhdGVzKSB7CiAgICAgICAgQnJvd3Nlci5zZXRDYW52YXNTaXplKHdpZHRoLCBoZWlnaHQsIG5vVXBkYXRlcykKICAgIH07CiAgICBNb2R1bGVbInBhdXNlTWFpbkxvb3AiXSA9IGZ1bmN0aW9uIE1vZHVsZV9wYXVzZU1haW5Mb29wKCkgewogICAgICAgIEJyb3dzZXIubWFpbkxvb3AucGF1c2UoKQogICAgfTsKICAgIE1vZHVsZVsicmVzdW1lTWFpbkxvb3AiXSA9IGZ1bmN0aW9uIE1vZHVsZV9yZXN1bWVNYWluTG9vcCgpIHsKICAgICAgICBCcm93c2VyLm1haW5Mb29wLnJlc3VtZSgpCiAgICB9OwogICAgTW9kdWxlWyJnZXRVc2VyTWVkaWEiXSA9IGZ1bmN0aW9uIE1vZHVsZV9nZXRVc2VyTWVkaWEoKSB7CiAgICAgICAgQnJvd3Nlci5nZXRVc2VyTWVkaWEoKQogICAgfTsKICAgIE1vZHVsZVsiY3JlYXRlQ29udGV4dCJdID0gZnVuY3Rpb24gTW9kdWxlX2NyZWF0ZUNvbnRleHQoY2FudmFzLCB1c2VXZWJHTCwgc2V0SW5Nb2R1bGUsIHdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpIHsKICAgICAgICByZXR1cm4gQnJvd3Nlci5jcmVhdGVDb250ZXh0KGNhbnZhcywgdXNlV2ViR0wsIHNldEluTW9kdWxlLCB3ZWJHTENvbnRleHRBdHRyaWJ1dGVzKQogICAgfTsKICAgIGlmIChFTlZJUk9OTUVOVF9JU19OT0RFKSB7CiAgICAgICAgX2Vtc2NyaXB0ZW5fZ2V0X25vdyA9IGZ1bmN0aW9uIF9lbXNjcmlwdGVuX2dldF9ub3dfYWN0dWFsKCkgewogICAgICAgICAgICB2YXIgdCA9IHByb2Nlc3NbImhydGltZSJdKCk7CiAgICAgICAgICAgIHJldHVybiB0WzBdICogMWUzICsgdFsxXSAvIDFlNgogICAgICAgIH0KICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGVOb3cgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgX2Vtc2NyaXB0ZW5fZ2V0X25vdyA9IGRhdGVOb3cKICAgIH0gZWxzZSBpZiAodHlwZW9mIHNlbGYgPT09ICJvYmplY3QiICYmIHNlbGZbInBlcmZvcm1hbmNlIl0gJiYgdHlwZW9mIHNlbGZbInBlcmZvcm1hbmNlIl1bIm5vdyJdID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgX2Vtc2NyaXB0ZW5fZ2V0X25vdyA9IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmV0dXJuIHNlbGZbInBlcmZvcm1hbmNlIl1bIm5vdyJdKCkKICAgICAgICB9KQogICAgfSBlbHNlIGlmICh0eXBlb2YgcGVyZm9ybWFuY2UgPT09ICJvYmplY3QiICYmIHR5cGVvZiBwZXJmb3JtYW5jZVsibm93Il0gPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICBfZW1zY3JpcHRlbl9nZXRfbm93ID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gcGVyZm9ybWFuY2VbIm5vdyJdKCkKICAgICAgICB9KQogICAgfSBlbHNlIHsKICAgICAgICBfZW1zY3JpcHRlbl9nZXRfbm93ID0gRGF0ZS5ub3cKICAgIH0KICAgIF9fX2J1aWxkRW52aXJvbm1lbnQoRU5WKTsKICAgIF9fQVRJTklUX18ucHVzaCgoZnVuY3Rpb24oKSB7CiAgICAgICAgU09DS0ZTLnJvb3QgPSBGUy5tb3VudChTT0NLRlMsIHt9LCBudWxsKQogICAgfSkpOwogICAgX19BVElOSVRfXy5wdXNoKChmdW5jdGlvbigpIHsKICAgICAgICBQSVBFRlMucm9vdCA9IEZTLm1vdW50KFBJUEVGUywge30sIG51bGwpCiAgICB9KSk7CiAgICBKU0V2ZW50cy5zdGF0aWNJbml0KCk7CiAgICB2YXIgR0xjdHg7CiAgICBHTC5pbml0KCk7CiAgICBEWU5BTUlDVE9QX1BUUiA9IHN0YXRpY0FsbG9jKDQpOwogICAgU1RBQ0tfQkFTRSA9IFNUQUNLVE9QID0gYWxpZ25NZW1vcnkoU1RBVElDVE9QKTsKICAgIFNUQUNLX01BWCA9IFNUQUNLX0JBU0UgKyBUT1RBTF9TVEFDSzsKICAgIERZTkFNSUNfQkFTRSA9IGFsaWduTWVtb3J5KFNUQUNLX01BWCk7CiAgICBIRUFQMzJbRFlOQU1JQ1RPUF9QVFIgPj4gMl0gPSBEWU5BTUlDX0JBU0U7CiAgICBzdGF0aWNTZWFsZWQgPSB0cnVlOwoKICAgIGZ1bmN0aW9uIGludEFycmF5RnJvbVN0cmluZyhzdHJpbmd5LCBkb250QWRkTnVsbCwgbGVuZ3RoKSB7CiAgICAgICAgdmFyIGxlbiA9IGxlbmd0aCA+IDAgPyBsZW5ndGggOiBsZW5ndGhCeXRlc1VURjgoc3RyaW5neSkgKyAxOwogICAgICAgIHZhciB1OGFycmF5ID0gbmV3IEFycmF5KGxlbik7CiAgICAgICAgdmFyIG51bUJ5dGVzV3JpdHRlbiA9IHN0cmluZ1RvVVRGOEFycmF5KHN0cmluZ3ksIHU4YXJyYXksIDAsIHU4YXJyYXkubGVuZ3RoKTsKICAgICAgICBpZiAoZG9udEFkZE51bGwpIHU4YXJyYXkubGVuZ3RoID0gbnVtQnl0ZXNXcml0dGVuOwogICAgICAgIHJldHVybiB1OGFycmF5CiAgICB9CiAgICBNb2R1bGVbIndhc21UYWJsZVNpemUiXSA9IDExMjE3OTsKICAgIE1vZHVsZVsid2FzbU1heFRhYmxlU2l6ZSJdID0gMTEyMTc5OwoKICAgIGZ1bmN0aW9uIGludm9rZV9kZGRpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9kZGRpIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9kZGkoaW5kZXgsIGExLCBhMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZGRpIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2RmaShpbmRleCwgYTEsIGEyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9kZmkiXShpbmRleCwgYTEsIGEyKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZGkoaW5kZXgsIGExKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9kaSJdKGluZGV4LCBhMSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2RpZGRpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZGlkZGkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9kaWRpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9kaWRpIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9kaWkoaW5kZXgsIGExLCBhMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZGlpIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2RpaWRpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZGlpZGkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9kaWlpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9kaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9kaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2RpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZGlqaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2RpamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9kamkoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2RqaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZihpbmRleCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZiJdKGluZGV4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmRpKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZkaSJdKGluZGV4LCBhMSwgYTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9mZihpbmRleCwgYTEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZmIl0oaW5kZXgsIGExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmZmKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZmZiJdKGluZGV4LCBhMSwgYTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9mZmZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZmZmZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmZmZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZmZmZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9mZmZmaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZmZmZpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmZmaShpbmRleCwgYTEsIGEyLCBhMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmZmaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmZmaWZmZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9mZmZpZmZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZmZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmZmaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9mZmkoaW5kZXgsIGExLCBhMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmZpIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmZpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maShpbmRleCwgYTEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZpIl0oaW5kZXgsIGExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmlkaShpbmRleCwgYTEsIGEyLCBhMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmlkaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmlmKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZpZiJdKGluZGV4LCBhMSwgYTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWZmKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWZmIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWZmZmZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWZmZmZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWZmZmZpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWZmZmZpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWZmZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZpZmZmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmlmZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZpZmkoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZpZmkiXShpbmRleCwgYTEsIGEyLCBhMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZpZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmlmaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWkoaW5kZXgsIGExLCBhMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmlpIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZpaWYoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZpaWYiXShpbmRleCwgYTEsIGEyLCBhMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZpaWZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmlpZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWlmaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmlpZmlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZpaWkoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZpaWkiXShpbmRleCwgYTEsIGEyLCBhMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZpaWlmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWlpZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZpaWlpZihpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWlpaWYiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfZmlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ZpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWlpaWlpZmlpZmlmKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWlpaWlpZmlpZmlmIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWlpaWlpZmlpaWlmKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9maWlpaWlpZmlpaWlmIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9maWlpaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmlpaWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ZqaShpbmRleCwgYTEsIGEyLCBhMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfZmppIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pKGluZGV4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9pIl0oaW5kZXgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pZGRpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9pZGRpIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pZGkoaW5kZXgsIGExLCBhMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWRpIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lkaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWRpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pZmZmZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWZmZmZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lmZmZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWZmZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pZmZmaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWZmZmlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lmZmZpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWZmZmlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pZmZmaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWZmZmlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lmZmZpaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lmZmZpaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lmZmkoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lmZmkiXShpbmRleCwgYTEsIGEyLCBhMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lmZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWZmaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pZmZpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9pZmZpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pZmkoaW5kZXgsIGExLCBhMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWZpIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lmaWZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9pZmlmZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWZpZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lmaWZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pZmlpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9pZmlpIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWZpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lmaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paShpbmRleCwgYTEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpIl0oaW5kZXgsIGExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlkZGkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWRkaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpZGRpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpZGRpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpZGkoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpZGkiXShpbmRleCwgYTEsIGEyLCBhMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpZGlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlkaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWRpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlkaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpZihpbmRleCwgYTEsIGEyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWYiXShpbmRleCwgYTEsIGEyKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlmZmYoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWZmZiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpZmZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWZmZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlmZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpZmZpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWZmaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlmZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlmZmlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlmaShpbmRleCwgYTEsIGEyLCBhMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlmaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlmaWZmZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlmaWZmZmlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlmaWZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpZmlmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWZpaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpZmlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlmaWlmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpZmlpZmlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWZpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpZmlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpZmlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpZmlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWZpaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaSJdKGluZGV4LCBhMSwgYTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlkKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlkIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlkaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWRpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpZGlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWRpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlkaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlkaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlmKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlmIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlmZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWZmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWZpZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlmaWZpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpZmlmaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpZmlmaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlmaWlmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlmaWlmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlmaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWZpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaShpbmRleCwgYTEsIGEyLCBhMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWRpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWRpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWZmZmZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWZmZmZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWZmaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpZmZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWlmZmlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlmZmlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWlmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWZpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWZpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpZmlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWlmaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpZmlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWZpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWZpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWlpZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWlpZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWZpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlmaWlpaWYoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlmaWlpaWYiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlmaWlpaWlmKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlmaWlpaWlmIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlmZmZpaWlmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlmZmZpaWlmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIsIGExMywgYTE0LCBhMTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlmZmlpaWlpaWlpaWZmZmZpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIsIGExMywgYTE0LCBhMTUsIGExNiwgYTE3LCBhMTgsIGExOSwgYTIwLCBhMjEsIGEyMiwgYTIzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlmZmlpaWlpaWlpaWZmZmZpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEsIGExMiwgYTEzLCBhMTQsIGExNSwgYTE2LCBhMTcsIGExOCwgYTE5LCBhMjAsIGEyMSwgYTIyLCBhMjMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlmZmlpaWlpaWlpaWZmZmZpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4LCBhMTksIGEyMCwgYTIxLCBhMjIsIGEyMywgYTI0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlmZmlpaWlpaWlpaWZmZmZpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIsIGExMywgYTE0LCBhMTUsIGExNiwgYTE3LCBhMTgsIGExOSwgYTIwLCBhMjEsIGEyMiwgYTIzLCBhMjQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlmZmlpaWlpaWlpaWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEsIGExMiwgYTEzLCBhMTQsIGExNSwgYTE2LCBhMTcsIGExOCwgYTE5LCBhMjAsIGEyMSwgYTIyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlmZmlpaWlpaWlpaWlpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4LCBhMTksIGEyMCwgYTIxLCBhMjIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlpZmlpZihpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpZmlpZiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlpZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpZmlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlpaWZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlpZmlpZihpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpZmlpZiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlpaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlpaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlpaWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEsIGExMiwgYTEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWlpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaWlpamppaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIsIGExMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWpqaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIsIGExMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWlpaWpqaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWlqamlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlqKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWoiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWlpamkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaWppIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWlqamlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlpamppaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpaihpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpamkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlqaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWppaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlqaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpamlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpamlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlpamlqaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWppamlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWlqamlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpamppaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWlpaWpqaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWlqamlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlqKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWppKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWppIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWppaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpamlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlqaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpamlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWpqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWpqaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaWpqaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpamppaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWlqamlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpamppaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpaihpbmRleCwgYTEsIGEyLCBhMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlqIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWppKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlqaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpamlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpamlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpamlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlqaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWppaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlqaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpamlpaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlqaWlpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWpqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlqamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpamppaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpamppaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lpamppaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlqamlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9paWpqamkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlqamppIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lqKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lqIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2lqaShpbmRleCwgYTEsIGEyLCBhMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWppIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pamlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9pamlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pamlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lqaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaWppaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lqaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pamlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9pamlpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pamooaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9pamoiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9pamppKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lqamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfaihpbmRleCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaiJdKGluZGV4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfamRpKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2pkaSJdKGluZGV4LCBhMSwgYTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qZGlpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9qZGlpIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qZmkoaW5kZXgsIGExLCBhMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfamZpIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ppKGluZGV4LCBhMSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfamkiXShpbmRleCwgYTEpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWRpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9qaWRpIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWRpaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ppZGlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfamlmaShpbmRleCwgYTEsIGEyLCBhMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfamlmaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfamlpKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ppaSJdKGluZGV4LCBhMSwgYTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWlpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9qaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ppaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfamlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ppaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9qaWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWlpaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9qaWlpaWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWlpaWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9qaWlpaWlpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWlqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9qaWlqaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWppKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfamlqaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ppamlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ppamlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX2ppamlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfamlqaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qaWpqKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ppamoiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfamlqamkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2ppamppIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qamkoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2pqaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfamppaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2pqaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV9qampqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2pqamppIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdihpbmRleCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92Il0oaW5kZXgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92ZChpbmRleCwgYTEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmQiXShpbmRleCwgYTEpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92ZGkoaW5kZXgsIGExLCBhMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92ZGkiXShpbmRleCwgYTEsIGEyKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmYoaW5kZXgsIGExKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZmIl0oaW5kZXgsIGExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmZmKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmZmIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZmZmYoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmZmZiJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmZmZmYoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZmZmZmIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmZmZmZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmZmZmZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZmZmZmaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZmZmZmaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92ZmZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmZmZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92ZmZpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZmZmkiXShpbmRleCwgYTEsIGEyLCBhMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZmZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZmZmlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92ZmkoaW5kZXgsIGExLCBhMikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92ZmkiXShpbmRleCwgYTEsIGEyKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmZpZmZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92ZmlmZmZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92ZmlmZmlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmZpZmZpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92ZmlmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZmaWZpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZmaWkoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmZpaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmZpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmZpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmZpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZmaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmZpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmkoaW5kZXgsIGExKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpIl0oaW5kZXgsIGExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlkKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlkIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZGkoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlkaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlkaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlkaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZihpbmRleCwgYTEsIGEyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZiJdKGluZGV4LCBhMSwgYTIpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWZmKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmYiXShpbmRleCwgYTEsIGEyLCBhMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmZmKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWZmZiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmZmZihpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmZmZiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWZmZmZmZmZmZmZmZmlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIsIGExMywgYTE0LCBhMTUsIGExNiwgYTE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmZmZmZmZmZmZmZmaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmZmZmZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWZmZmZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmZmZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlmZmZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlmZmZmaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmZmZmlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlmZmZmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlmZmZmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWZmZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmZmaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmZmaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmZmaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWZmZmlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmZmaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmZpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWZmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmZpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmkoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlmaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlmaWZmZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmlmZmZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlmaWZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWZpZmZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWZpZmZpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlmaWZmaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWZpZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWZpZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlmaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpZmlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlmaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpZmlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlmaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpKGluZGV4LCBhMSwgYTIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpIl0oaW5kZXgsIGExLCBhMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWQoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpZCJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpZGkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWRpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpZGlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpZGlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWYoaW5kZXgsIGExLCBhMiwgYTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpZiJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpZmYoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWZmIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpZmZmKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpZmZmIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWZmZmZpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpZmZmZmlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpZmZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlmZmZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlmZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlmZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpZmZpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlmZmlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlmaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlmaWZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWZpZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWZpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWZpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWZpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlmaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWZpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWZpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWkiXShpbmRleCwgYTEsIGEyLCBhMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlmKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpZiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlmZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWZmaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlmZmlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlmaWZmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlmaWZmaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpZmlmaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWZpZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlmaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlmaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpZmlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlmaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWZpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlmKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlmIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlpZmYoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlmZiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlmZmZmaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWZmZmZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpaWZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpZmkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlpZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlpZmlpaWlpZihpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlmaWlpaWlmIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWYoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpZmZpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZmZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWZmaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZmZpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpZmkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWZpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpaWlpZihpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWYiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlpaWlpZmlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlpaWlmaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEsIGExMiwgYTEzLCBhMTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEsIGExMikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWlpaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEsIGExMiwgYTEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlpaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlpaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEsIGExMiwgYTEzLCBhMTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWlpaWlpaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWlpaWlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEsIGExMiwgYTEzLCBhMTQsIGExNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpaWlpaWlpaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExLCBhMTIsIGExMywgYTE0LCBhMTUsIGExNiwgYTE3LCBhMTgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlpaWppKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWlqaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSwgYTEyKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpaWlqaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpamlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlpamlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWppaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlqaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlpamlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlqaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlqaWlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpamlpaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaWlqamlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwLCBhMTEpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaWlqamlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlqamkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpamppIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWlqamlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlqamlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlpamppaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpamppaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpaihpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpaiJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWppKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpamlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWppaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpamlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlqaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlqaWlpaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpamlpaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlqaWlqaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsIGExMSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlqaWlqaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwgYTExKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlpamlqaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlpamlqaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWppamlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEwKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWppamlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlqamkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWpqaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWpqaWkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWlqamlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaWpqaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWpqaWlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWlqamppKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWpqamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpaihpbmRleCwgYTEsIGEyLCBhMykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWoiXShpbmRleCwgYTEsIGEyLCBhMykKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpamkoaW5kZXgsIGExLCBhMiwgYTMsIGE0KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWppaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZpamlpIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpamlpaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWppaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZpamlqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmlqaWppIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlqaWpqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWppamppIl0oaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWpqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWpqaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmlqamlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWpqaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpCiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBpZiAodHlwZW9mIGUgIT09ICJudW1iZXIiICYmIGUgIT09ICJsb25nam1wIikgdGhyb3cgZTsKICAgICAgICAgICAgTW9kdWxlWyJzZXRUaHJldyJdKDEsIDApCiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGludm9rZV92aWpqamkoaW5kZXgsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIE1vZHVsZVsiZHluQ2FsbF92aWpqamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmppKGluZGV4LCBhMSwgYTIsIGEzKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZqaSJdKGluZGV4LCBhMSwgYTIsIGEzKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmppaShpbmRleCwgYTEsIGEyLCBhMywgYTQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmppaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCkKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZSAhPT0gIm51bWJlciIgJiYgZSAhPT0gImxvbmdqbXAiKSB0aHJvdyBlOwogICAgICAgICAgICBNb2R1bGVbInNldFRocmV3Il0oMSwgMCkKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW52b2tlX3ZqaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBNb2R1bGVbImR5bkNhbGxfdmppaWkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmppaWlpKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZqaWlpaSJdKGluZGV4LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbnZva2VfdmpqaShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgTW9kdWxlWyJkeW5DYWxsX3ZqamkiXShpbmRleCwgYTEsIGEyLCBhMywgYTQsIGE1KQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlICE9PSAibnVtYmVyIiAmJiBlICE9PSAibG9uZ2ptcCIpIHRocm93IGU7CiAgICAgICAgICAgIE1vZHVsZVsic2V0VGhyZXciXSgxLCAwKQogICAgICAgIH0KICAgIH0KICAgIE1vZHVsZS5hc21HbG9iYWxBcmcgPSB7fTsKICAgIE1vZHVsZS5hc21MaWJyYXJ5QXJnID0gewogICAgICAgICJhYm9ydCI6IGFib3J0LAogICAgICAgICJhc3NlcnQiOiBhc3NlcnQsCiAgICAgICAgImVubGFyZ2VNZW1vcnkiOiBlbmxhcmdlTWVtb3J5LAogICAgICAgICJnZXRUb3RhbE1lbW9yeSI6IGdldFRvdGFsTWVtb3J5LAogICAgICAgICJhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeSI6IGFib3J0T25DYW5ub3RHcm93TWVtb3J5LAogICAgICAgICJpbnZva2VfZGRkaSI6IGludm9rZV9kZGRpLAogICAgICAgICJpbnZva2VfZGRpIjogaW52b2tlX2RkaSwKICAgICAgICAiaW52b2tlX2RmaSI6IGludm9rZV9kZmksCiAgICAgICAgImludm9rZV9kaSI6IGludm9rZV9kaSwKICAgICAgICAiaW52b2tlX2RpZGRpIjogaW52b2tlX2RpZGRpLAogICAgICAgICJpbnZva2VfZGlkaSI6IGludm9rZV9kaWRpLAogICAgICAgICJpbnZva2VfZGlpIjogaW52b2tlX2RpaSwKICAgICAgICAiaW52b2tlX2RpaWRpIjogaW52b2tlX2RpaWRpLAogICAgICAgICJpbnZva2VfZGlpaSI6IGludm9rZV9kaWlpLAogICAgICAgICJpbnZva2VfZGlpaWkiOiBpbnZva2VfZGlpaWksCiAgICAgICAgImludm9rZV9kaWppIjogaW52b2tlX2RpamksCiAgICAgICAgImludm9rZV9kamkiOiBpbnZva2VfZGppLAogICAgICAgICJpbnZva2VfZiI6IGludm9rZV9mLAogICAgICAgICJpbnZva2VfZmRpIjogaW52b2tlX2ZkaSwKICAgICAgICAiaW52b2tlX2ZmIjogaW52b2tlX2ZmLAogICAgICAgICJpbnZva2VfZmZmIjogaW52b2tlX2ZmZiwKICAgICAgICAiaW52b2tlX2ZmZmZpIjogaW52b2tlX2ZmZmZpLAogICAgICAgICJpbnZva2VfZmZmZmlpIjogaW52b2tlX2ZmZmZpaSwKICAgICAgICAiaW52b2tlX2ZmZmZpaWlpIjogaW52b2tlX2ZmZmZpaWlpLAogICAgICAgICJpbnZva2VfZmZmaSI6IGludm9rZV9mZmZpLAogICAgICAgICJpbnZva2VfZmZmaWZmZmkiOiBpbnZva2VfZmZmaWZmZmksCiAgICAgICAgImludm9rZV9mZmZpaSI6IGludm9rZV9mZmZpaSwKICAgICAgICAiaW52b2tlX2ZmaSI6IGludm9rZV9mZmksCiAgICAgICAgImludm9rZV9mZmlpaSI6IGludm9rZV9mZmlpaSwKICAgICAgICAiaW52b2tlX2ZpIjogaW52b2tlX2ZpLAogICAgICAgICJpbnZva2VfZmlkaSI6IGludm9rZV9maWRpLAogICAgICAgICJpbnZva2VfZmlmIjogaW52b2tlX2ZpZiwKICAgICAgICAiaW52b2tlX2ZpZmYiOiBpbnZva2VfZmlmZiwKICAgICAgICAiaW52b2tlX2ZpZmZmZmkiOiBpbnZva2VfZmlmZmZmaSwKICAgICAgICAiaW52b2tlX2ZpZmZmZmlpaWlpIjogaW52b2tlX2ZpZmZmZmlpaWlpLAogICAgICAgICJpbnZva2VfZmlmZmZpaWkiOiBpbnZva2VfZmlmZmZpaWksCiAgICAgICAgImludm9rZV9maWZmaSI6IGludm9rZV9maWZmaSwKICAgICAgICAiaW52b2tlX2ZpZmkiOiBpbnZva2VfZmlmaSwKICAgICAgICAiaW52b2tlX2ZpZmlpIjogaW52b2tlX2ZpZmlpLAogICAgICAgICJpbnZva2VfZmlpIjogaW52b2tlX2ZpaSwKICAgICAgICAiaW52b2tlX2ZpaWYiOiBpbnZva2VfZmlpZiwKICAgICAgICAiaW52b2tlX2ZpaWZpIjogaW52b2tlX2ZpaWZpLAogICAgICAgICJpbnZva2VfZmlpZmlpIjogaW52b2tlX2ZpaWZpaSwKICAgICAgICAiaW52b2tlX2ZpaWkiOiBpbnZva2VfZmlpaSwKICAgICAgICAiaW52b2tlX2ZpaWlmaSI6IGludm9rZV9maWlpZmksCiAgICAgICAgImludm9rZV9maWlpaSI6IGludm9rZV9maWlpaSwKICAgICAgICAiaW52b2tlX2ZpaWlpZiI6IGludm9rZV9maWlpaWYsCiAgICAgICAgImludm9rZV9maWlpaWkiOiBpbnZva2VfZmlpaWlpLAogICAgICAgICJpbnZva2VfZmlpaWlpaSI6IGludm9rZV9maWlpaWlpLAogICAgICAgICJpbnZva2VfZmlpaWlpaWZpaWZpZiI6IGludm9rZV9maWlpaWlpZmlpZmlmLAogICAgICAgICJpbnZva2VfZmlpaWlpaWZpaWlpZiI6IGludm9rZV9maWlpaWlpZmlpaWlmLAogICAgICAgICJpbnZva2VfZmlpaWlpaWlpIjogaW52b2tlX2ZpaWlpaWlpaSwKICAgICAgICAiaW52b2tlX2ZqaSI6IGludm9rZV9mamksCiAgICAgICAgImludm9rZV9pIjogaW52b2tlX2ksCiAgICAgICAgImludm9rZV9pZGRpIjogaW52b2tlX2lkZGksCiAgICAgICAgImludm9rZV9pZGkiOiBpbnZva2VfaWRpLAogICAgICAgICJpbnZva2VfaWRpaWkiOiBpbnZva2VfaWRpaWksCiAgICAgICAgImludm9rZV9pZmZmZmkiOiBpbnZva2VfaWZmZmZpLAogICAgICAgICJpbnZva2VfaWZmZmkiOiBpbnZva2VfaWZmZmksCiAgICAgICAgImludm9rZV9pZmZmaWkiOiBpbnZva2VfaWZmZmlpLAogICAgICAgICJpbnZva2VfaWZmZmlpaWkiOiBpbnZva2VfaWZmZmlpaWksCiAgICAgICAgImludm9rZV9pZmZmaWlpaWkiOiBpbnZva2VfaWZmZmlpaWlpLAogICAgICAgICJpbnZva2VfaWZmZmlpaWlpaSI6IGludm9rZV9pZmZmaWlpaWlpLAogICAgICAgICJpbnZva2VfaWZmaSI6IGludm9rZV9pZmZpLAogICAgICAgICJpbnZva2VfaWZmaWkiOiBpbnZva2VfaWZmaWksCiAgICAgICAgImludm9rZV9pZmZpaWlpIjogaW52b2tlX2lmZmlpaWksCiAgICAgICAgImludm9rZV9pZmkiOiBpbnZva2VfaWZpLAogICAgICAgICJpbnZva2VfaWZpZmZpIjogaW52b2tlX2lmaWZmaSwKICAgICAgICAiaW52b2tlX2lmaWZpaSI6IGludm9rZV9pZmlmaWksCiAgICAgICAgImludm9rZV9pZmlpIjogaW52b2tlX2lmaWksCiAgICAgICAgImludm9rZV9pZmlpaSI6IGludm9rZV9pZmlpaSwKICAgICAgICAiaW52b2tlX2lmaWlpaSI6IGludm9rZV9pZmlpaWksCiAgICAgICAgImludm9rZV9paSI6IGludm9rZV9paSwKICAgICAgICAiaW52b2tlX2lpZGRpIjogaW52b2tlX2lpZGRpLAogICAgICAgICJpbnZva2VfaWlkZGlpaSI6IGludm9rZV9paWRkaWlpLAogICAgICAgICJpbnZva2VfaWlkaSI6IGludm9rZV9paWRpLAogICAgICAgICJpbnZva2VfaWlkaWkiOiBpbnZva2VfaWlkaWksCiAgICAgICAgImludm9rZV9paWRpaWkiOiBpbnZva2VfaWlkaWlpLAogICAgICAgICJpbnZva2VfaWlmIjogaW52b2tlX2lpZiwKICAgICAgICAiaW52b2tlX2lpZmZmIjogaW52b2tlX2lpZmZmLAogICAgICAgICJpbnZva2VfaWlmZmZpIjogaW52b2tlX2lpZmZmaSwKICAgICAgICAiaW52b2tlX2lpZmZpIjogaW52b2tlX2lpZmZpLAogICAgICAgICJpbnZva2VfaWlmZmlpIjogaW52b2tlX2lpZmZpaSwKICAgICAgICAiaW52b2tlX2lpZmZpaWkiOiBpbnZva2VfaWlmZmlpaSwKICAgICAgICAiaW52b2tlX2lpZmkiOiBpbnZva2VfaWlmaSwKICAgICAgICAiaW52b2tlX2lpZmlmZmZpaWkiOiBpbnZva2VfaWlmaWZmZmlpaSwKICAgICAgICAiaW52b2tlX2lpZmlmaSI6IGludm9rZV9paWZpZmksCiAgICAgICAgImludm9rZV9paWZpaSI6IGludm9rZV9paWZpaSwKICAgICAgICAiaW52b2tlX2lpZmlpZmlpaSI6IGludm9rZV9paWZpaWZpaWksCiAgICAgICAgImludm9rZV9paWZpaWkiOiBpbnZva2VfaWlmaWlpLAogICAgICAgICJpbnZva2VfaWlmaWlpaSI6IGludm9rZV9paWZpaWlpLAogICAgICAgICJpbnZva2VfaWlmaWlpaWlpIjogaW52b2tlX2lpZmlpaWlpaSwKICAgICAgICAiaW52b2tlX2lpaSI6IGludm9rZV9paWksCiAgICAgICAgImludm9rZV9paWlkIjogaW52b2tlX2lpaWQsCiAgICAgICAgImludm9rZV9paWlkaSI6IGludm9rZV9paWlkaSwKICAgICAgICAiaW52b2tlX2lpaWRpaSI6IGludm9rZV9paWlkaWksCiAgICAgICAgImludm9rZV9paWlkaWlpIjogaW52b2tlX2lpaWRpaWksCiAgICAgICAgImludm9rZV9paWlmIjogaW52b2tlX2lpaWYsCiAgICAgICAgImludm9rZV9paWlmZmlpaSI6IGludm9rZV9paWlmZmlpaSwKICAgICAgICAiaW52b2tlX2lpaWZpIjogaW52b2tlX2lpaWZpLAogICAgICAgICJpbnZva2VfaWlpZmlmaWlpIjogaW52b2tlX2lpaWZpZmlpaSwKICAgICAgICAiaW52b2tlX2lpaWZpZmlpaWkiOiBpbnZva2VfaWlpZmlmaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWZpaSI6IGludm9rZV9paWlmaWksCiAgICAgICAgImludm9rZV9paWlmaWlmaWlpIjogaW52b2tlX2lpaWZpaWZpaWksCiAgICAgICAgImludm9rZV9paWlmaWlpIjogaW52b2tlX2lpaWZpaWksCiAgICAgICAgImludm9rZV9paWlmaWlpaSI6IGludm9rZV9paWlmaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWkiOiBpbnZva2VfaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWlkaWkiOiBpbnZva2VfaWlpaWRpaSwKICAgICAgICAiaW52b2tlX2lpaWlmZmZmZmkiOiBpbnZva2VfaWlpaWZmZmZmaSwKICAgICAgICAiaW52b2tlX2lpaWlmZmkiOiBpbnZva2VfaWlpaWZmaSwKICAgICAgICAiaW52b2tlX2lpaWlmZmlpIjogaW52b2tlX2lpaWlmZmlpLAogICAgICAgICJpbnZva2VfaWlpaWZmaWlpaSI6IGludm9rZV9paWlpZmZpaWlpLAogICAgICAgICJpbnZva2VfaWlpaWZpIjogaW52b2tlX2lpaWlmaSwKICAgICAgICAiaW52b2tlX2lpaWlmaWkiOiBpbnZva2VfaWlpaWZpaSwKICAgICAgICAiaW52b2tlX2lpaWlmaWlpIjogaW52b2tlX2lpaWlmaWlpLAogICAgICAgICJpbnZva2VfaWlpaWZpaWlpIjogaW52b2tlX2lpaWlmaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWlmaWlpaWkiOiBpbnZva2VfaWlpaWZpaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWlpIjogaW52b2tlX2lpaWlpLAogICAgICAgICJpbnZva2VfaWlpaWlmaSI6IGludm9rZV9paWlpaWZpLAogICAgICAgICJpbnZva2VfaWlpaWlmaWlpIjogaW52b2tlX2lpaWlpZmlpaSwKICAgICAgICAiaW52b2tlX2lpaWlpZmlpaWlmIjogaW52b2tlX2lpaWlpZmlpaWlmLAogICAgICAgICJpbnZva2VfaWlpaWlmaWlpaWlmIjogaW52b2tlX2lpaWlpZmlpaWlpZiwKICAgICAgICAiaW52b2tlX2lpaWlpaSI6IGludm9rZV9paWlpaWksCiAgICAgICAgImludm9rZV9paWlpaWlmZmZpaWlmaWlpIjogaW52b2tlX2lpaWlpaWZmZmlpaWZpaWksCiAgICAgICAgImludm9rZV9paWlpaWlmZmlpaWlpaWlpaWZmZmZpaWkiOiBpbnZva2VfaWlpaWlpZmZpaWlpaWlpaWlmZmZmaWlpLAogICAgICAgICJpbnZva2VfaWlpaWlpZmZpaWlpaWlpaWlmZmZmaWlpaSI6IGludm9rZV9paWlpaWlmZmlpaWlpaWlpaWZmZmZpaWlpLAogICAgICAgICJpbnZva2VfaWlpaWlpZmZpaWlpaWlpaWlpaWlpaWkiOiBpbnZva2VfaWlpaWlpZmZpaWlpaWlpaWlpaWlpaWksCiAgICAgICAgImludm9rZV9paWlpaWlmaSI6IGludm9rZV9paWlpaWlmaSwKICAgICAgICAiaW52b2tlX2lpaWlpaWZpaWYiOiBpbnZva2VfaWlpaWlpZmlpZiwKICAgICAgICAiaW52b2tlX2lpaWlpaWZpaWkiOiBpbnZva2VfaWlpaWlpZmlpaSwKICAgICAgICAiaW52b2tlX2lpaWlpaWkiOiBpbnZva2VfaWlpaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWlpaWlmaSI6IGludm9rZV9paWlpaWlpZmksCiAgICAgICAgImludm9rZV9paWlpaWlpZmlpZiI6IGludm9rZV9paWlpaWlpZmlpZiwKICAgICAgICAiaW52b2tlX2lpaWlpaWlpIjogaW52b2tlX2lpaWlpaWlpLAogICAgICAgICJpbnZva2VfaWlpaWlpaWlpIjogaW52b2tlX2lpaWlpaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWlpaWlpaWkiOiBpbnZva2VfaWlpaWlpaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWlpaWlpaWlpIjogaW52b2tlX2lpaWlpaWlpaWlpLAogICAgICAgICJpbnZva2VfaWlpaWlpaWlpaWlpIjogaW52b2tlX2lpaWlpaWlpaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWlpaWlpaWlpaWkiOiBpbnZva2VfaWlpaWlpaWlpaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWlpaWlpaWlpaWlpIjogaW52b2tlX2lpaWlpaWlpaWlpaWlpLAogICAgICAgICJpbnZva2VfaWlpaWlpaWpqaWlpIjogaW52b2tlX2lpaWlpaWlqamlpaSwKICAgICAgICAiaW52b2tlX2lpaWlpaWpqaWlpIjogaW52b2tlX2lpaWlpaWpqaWlpLAogICAgICAgICJpbnZva2VfaWlpaWlqIjogaW52b2tlX2lpaWlpaiwKICAgICAgICAiaW52b2tlX2lpaWlpamkiOiBpbnZva2VfaWlpaWlqaSwKICAgICAgICAiaW52b2tlX2lpaWlpamppaWlpaSI6IGludm9rZV9paWlpaWpqaWlpaWksCiAgICAgICAgImludm9rZV9paWlpaiI6IGludm9rZV9paWlpaiwKICAgICAgICAiaW52b2tlX2lpaWlqaSI6IGludm9rZV9paWlpamksCiAgICAgICAgImludm9rZV9paWlpamlpIjogaW52b2tlX2lpaWlqaWksCiAgICAgICAgImludm9rZV9paWlpamlpaSI6IGludm9rZV9paWlpamlpaSwKICAgICAgICAiaW52b2tlX2lpaWlqaWppaSI6IGludm9rZV9paWlpamlqaWksCiAgICAgICAgImludm9rZV9paWlpamppaSI6IGludm9rZV9paWlpamppaSwKICAgICAgICAiaW52b2tlX2lpaWlqamlpaWkiOiBpbnZva2VfaWlpaWpqaWlpaSwKICAgICAgICAiaW52b2tlX2lpaWoiOiBpbnZva2VfaWlpaiwKICAgICAgICAiaW52b2tlX2lpaWppIjogaW52b2tlX2lpaWppLAogICAgICAgICJpbnZva2VfaWlpamlpIjogaW52b2tlX2lpaWppaSwKICAgICAgICAiaW52b2tlX2lpaWppaWkiOiBpbnZva2VfaWlpamlpaSwKICAgICAgICAiaW52b2tlX2lpaWpqaSI6IGludm9rZV9paWlqamksCiAgICAgICAgImludm9rZV9paWlqamlpIjogaW52b2tlX2lpaWpqaWksCiAgICAgICAgImludm9rZV9paWlqamlpaWkiOiBpbnZva2VfaWlpamppaWlpLAogICAgICAgICJpbnZva2VfaWlqIjogaW52b2tlX2lpaiwKICAgICAgICAiaW52b2tlX2lpamkiOiBpbnZva2VfaWlqaSwKICAgICAgICAiaW52b2tlX2lpamlpIjogaW52b2tlX2lpamlpLAogICAgICAgICJpbnZva2VfaWlqaWlpIjogaW52b2tlX2lpamlpaSwKICAgICAgICAiaW52b2tlX2lpamlpaWkiOiBpbnZva2VfaWlqaWlpaSwKICAgICAgICAiaW52b2tlX2lpamlpaWlpaWkiOiBpbnZva2VfaWlqaWlpaWlpaSwKICAgICAgICAiaW52b2tlX2lpamppIjogaW52b2tlX2lpamppLAogICAgICAgICJpbnZva2VfaWlqamlpIjogaW52b2tlX2lpamppaSwKICAgICAgICAiaW52b2tlX2lpamppaWkiOiBpbnZva2VfaWlqamlpaSwKICAgICAgICAiaW52b2tlX2lpampqaSI6IGludm9rZV9paWpqamksCiAgICAgICAgImludm9rZV9paiI6IGludm9rZV9paiwKICAgICAgICAiaW52b2tlX2lqaSI6IGludm9rZV9pamksCiAgICAgICAgImludm9rZV9pamlpaSI6IGludm9rZV9pamlpaSwKICAgICAgICAiaW52b2tlX2lqaWlpaSI6IGludm9rZV9pamlpaWksCiAgICAgICAgImludm9rZV9pamlpaWlpIjogaW52b2tlX2lqaWlpaWksCiAgICAgICAgImludm9rZV9pamlpaWlpaSI6IGludm9rZV9pamlpaWlpaSwKICAgICAgICAiaW52b2tlX2lqaiI6IGludm9rZV9pamosCiAgICAgICAgImludm9rZV9pamppIjogaW52b2tlX2lqamksCiAgICAgICAgImludm9rZV9qIjogaW52b2tlX2osCiAgICAgICAgImludm9rZV9qZGkiOiBpbnZva2VfamRpLAogICAgICAgICJpbnZva2VfamRpaSI6IGludm9rZV9qZGlpLAogICAgICAgICJpbnZva2VfamZpIjogaW52b2tlX2pmaSwKICAgICAgICAiaW52b2tlX2ppIjogaW52b2tlX2ppLAogICAgICAgICJpbnZva2VfamlkaSI6IGludm9rZV9qaWRpLAogICAgICAgICJpbnZva2VfamlkaWkiOiBpbnZva2VfamlkaWksCiAgICAgICAgImludm9rZV9qaWZpIjogaW52b2tlX2ppZmksCiAgICAgICAgImludm9rZV9qaWkiOiBpbnZva2VfamlpLAogICAgICAgICJpbnZva2VfamlpaSI6IGludm9rZV9qaWlpLAogICAgICAgICJpbnZva2VfamlpaWkiOiBpbnZva2VfamlpaWksCiAgICAgICAgImludm9rZV9qaWlpaWkiOiBpbnZva2VfamlpaWlpLAogICAgICAgICJpbnZva2VfamlpaWlpaSI6IGludm9rZV9qaWlpaWlpLAogICAgICAgICJpbnZva2VfamlpaWlpaWlpaSI6IGludm9rZV9qaWlpaWlpaWlpLAogICAgICAgICJpbnZva2VfamlpaWlpaWlpaWkiOiBpbnZva2VfamlpaWlpaWlpaWksCiAgICAgICAgImludm9rZV9qaWlqaSI6IGludm9rZV9qaWlqaSwKICAgICAgICAiaW52b2tlX2ppamkiOiBpbnZva2VfamlqaSwKICAgICAgICAiaW52b2tlX2ppamlpIjogaW52b2tlX2ppamlpLAogICAgICAgICJpbnZva2VfamlqaWlpIjogaW52b2tlX2ppamlpaSwKICAgICAgICAiaW52b2tlX2ppamoiOiBpbnZva2VfamlqaiwKICAgICAgICAiaW52b2tlX2ppamppIjogaW52b2tlX2ppamppLAogICAgICAgICJpbnZva2VfamppIjogaW52b2tlX2pqaSwKICAgICAgICAiaW52b2tlX2pqaWkiOiBpbnZva2VfamppaSwKICAgICAgICAiaW52b2tlX2pqamppIjogaW52b2tlX2pqamppLAogICAgICAgICJpbnZva2VfdiI6IGludm9rZV92LAogICAgICAgICJpbnZva2VfdmQiOiBpbnZva2VfdmQsCiAgICAgICAgImludm9rZV92ZGkiOiBpbnZva2VfdmRpLAogICAgICAgICJpbnZva2VfdmYiOiBpbnZva2VfdmYsCiAgICAgICAgImludm9rZV92ZmYiOiBpbnZva2VfdmZmLAogICAgICAgICJpbnZva2VfdmZmZiI6IGludm9rZV92ZmZmLAogICAgICAgICJpbnZva2VfdmZmZmYiOiBpbnZva2VfdmZmZmYsCiAgICAgICAgImludm9rZV92ZmZmZmkiOiBpbnZva2VfdmZmZmZpLAogICAgICAgICJpbnZva2VfdmZmZmZpaWlpIjogaW52b2tlX3ZmZmZmaWlpaSwKICAgICAgICAiaW52b2tlX3ZmZmZpIjogaW52b2tlX3ZmZmZpLAogICAgICAgICJpbnZva2VfdmZmaSI6IGludm9rZV92ZmZpLAogICAgICAgICJpbnZva2VfdmZmaWlpIjogaW52b2tlX3ZmZmlpaSwKICAgICAgICAiaW52b2tlX3ZmaSI6IGludm9rZV92ZmksCiAgICAgICAgImludm9rZV92ZmlmZmZpIjogaW52b2tlX3ZmaWZmZmksCiAgICAgICAgImludm9rZV92ZmlmZmlpaSI6IGludm9rZV92ZmlmZmlpaSwKICAgICAgICAiaW52b2tlX3ZmaWZpaWkiOiBpbnZva2VfdmZpZmlpaSwKICAgICAgICAiaW52b2tlX3ZmaWkiOiBpbnZva2VfdmZpaSwKICAgICAgICAiaW52b2tlX3ZmaWlpIjogaW52b2tlX3ZmaWlpLAogICAgICAgICJpbnZva2VfdmZpaWlpIjogaW52b2tlX3ZmaWlpaSwKICAgICAgICAiaW52b2tlX3ZmaWlpaWkiOiBpbnZva2VfdmZpaWlpaSwKICAgICAgICAiaW52b2tlX3ZpIjogaW52b2tlX3ZpLAogICAgICAgICJpbnZva2VfdmlkIjogaW52b2tlX3ZpZCwKICAgICAgICAiaW52b2tlX3ZpZGkiOiBpbnZva2VfdmlkaSwKICAgICAgICAiaW52b2tlX3ZpZGlpaSI6IGludm9rZV92aWRpaWksCiAgICAgICAgImludm9rZV92aWYiOiBpbnZva2VfdmlmLAogICAgICAgICJpbnZva2VfdmlmZiI6IGludm9rZV92aWZmLAogICAgICAgICJpbnZva2VfdmlmZmYiOiBpbnZva2VfdmlmZmYsCiAgICAgICAgImludm9rZV92aWZmZmYiOiBpbnZva2VfdmlmZmZmLAogICAgICAgICJpbnZva2VfdmlmZmZmZmZmZmZmZmZpaWlpIjogaW52b2tlX3ZpZmZmZmZmZmZmZmZmaWlpaSwKICAgICAgICAiaW52b2tlX3ZpZmZmZmZpIjogaW52b2tlX3ZpZmZmZmZpLAogICAgICAgICJpbnZva2VfdmlmZmZmaSI6IGludm9rZV92aWZmZmZpLAogICAgICAgICJpbnZva2VfdmlmZmZmaWkiOiBpbnZva2VfdmlmZmZmaWksCiAgICAgICAgImludm9rZV92aWZmZmZpaWkiOiBpbnZva2VfdmlmZmZmaWlpLAogICAgICAgICJpbnZva2VfdmlmZmZpIjogaW52b2tlX3ZpZmZmaSwKICAgICAgICAiaW52b2tlX3ZpZmZmaWkiOiBpbnZva2VfdmlmZmZpaSwKICAgICAgICAiaW52b2tlX3ZpZmZmaWlpaSI6IGludm9rZV92aWZmZmlpaWksCiAgICAgICAgImludm9rZV92aWZmZmlpaWlpIjogaW52b2tlX3ZpZmZmaWlpaWksCiAgICAgICAgImludm9rZV92aWZmaSI6IGludm9rZV92aWZmaSwKICAgICAgICAiaW52b2tlX3ZpZmZpaSI6IGludm9rZV92aWZmaWksCiAgICAgICAgImludm9rZV92aWZmaWlpIjogaW52b2tlX3ZpZmZpaWksCiAgICAgICAgImludm9rZV92aWZpIjogaW52b2tlX3ZpZmksCiAgICAgICAgImludm9rZV92aWZpZmZmaSI6IGludm9rZV92aWZpZmZmaSwKICAgICAgICAiaW52b2tlX3ZpZmlmZmkiOiBpbnZva2VfdmlmaWZmaSwKICAgICAgICAiaW52b2tlX3ZpZmlmZmlpIjogaW52b2tlX3ZpZmlmZmlpLAogICAgICAgICJpbnZva2VfdmlmaWZpIjogaW52b2tlX3ZpZmlmaSwKICAgICAgICAiaW52b2tlX3ZpZmlpIjogaW52b2tlX3ZpZmlpLAogICAgICAgICJpbnZva2VfdmlmaWlpIjogaW52b2tlX3ZpZmlpaSwKICAgICAgICAiaW52b2tlX3ZpZmlpaWkiOiBpbnZva2VfdmlmaWlpaSwKICAgICAgICAiaW52b2tlX3ZpaSI6IGludm9rZV92aWksCiAgICAgICAgImludm9rZV92aWlkIjogaW52b2tlX3ZpaWQsCiAgICAgICAgImludm9rZV92aWlkaSI6IGludm9rZV92aWlkaSwKICAgICAgICAiaW52b2tlX3ZpaWRpaSI6IGludm9rZV92aWlkaWksCiAgICAgICAgImludm9rZV92aWlmIjogaW52b2tlX3ZpaWYsCiAgICAgICAgImludm9rZV92aWlmZiI6IGludm9rZV92aWlmZiwKICAgICAgICAiaW52b2tlX3ZpaWZmZiI6IGludm9rZV92aWlmZmYsCiAgICAgICAgImludm9rZV92aWlmZmZmaWlpaWkiOiBpbnZva2VfdmlpZmZmZmlpaWlpLAogICAgICAgICJpbnZva2VfdmlpZmZmaSI6IGludm9rZV92aWlmZmZpLAogICAgICAgICJpbnZva2VfdmlpZmZpIjogaW52b2tlX3ZpaWZmaSwKICAgICAgICAiaW52b2tlX3ZpaWZmaWkiOiBpbnZva2VfdmlpZmZpaSwKICAgICAgICAiaW52b2tlX3ZpaWZpIjogaW52b2tlX3ZpaWZpLAogICAgICAgICJpbnZva2VfdmlpZmlmaSI6IGludm9rZV92aWlmaWZpLAogICAgICAgICJpbnZva2VfdmlpZmlpIjogaW52b2tlX3ZpaWZpaSwKICAgICAgICAiaW52b2tlX3ZpaWZpaWkiOiBpbnZva2VfdmlpZmlpaSwKICAgICAgICAiaW52b2tlX3ZpaWZpaWlpIjogaW52b2tlX3ZpaWZpaWlpLAogICAgICAgICJpbnZva2VfdmlpZmlpaWlpIjogaW52b2tlX3ZpaWZpaWlpaSwKICAgICAgICAiaW52b2tlX3ZpaWkiOiBpbnZva2VfdmlpaSwKICAgICAgICAiaW52b2tlX3ZpaWlmIjogaW52b2tlX3ZpaWlmLAogICAgICAgICJpbnZva2VfdmlpaWZmaSI6IGludm9rZV92aWlpZmZpLAogICAgICAgICJpbnZva2VfdmlpaWZmaWkiOiBpbnZva2VfdmlpaWZmaWksCiAgICAgICAgImludm9rZV92aWlpZmkiOiBpbnZva2VfdmlpaWZpLAogICAgICAgICJpbnZva2VfdmlpaWZpZmZpIjogaW52b2tlX3ZpaWlmaWZmaSwKICAgICAgICAiaW52b2tlX3ZpaWlmaWZpIjogaW52b2tlX3ZpaWlmaWZpLAogICAgICAgICJpbnZva2VfdmlpaWZpaSI6IGludm9rZV92aWlpZmlpLAogICAgICAgICJpbnZva2VfdmlpaWZpaWkiOiBpbnZva2VfdmlpaWZpaWksCiAgICAgICAgImludm9rZV92aWlpZmlpaWlpIjogaW52b2tlX3ZpaWlmaWlpaWksCiAgICAgICAgImludm9rZV92aWlpaSI6IGludm9rZV92aWlpaSwKICAgICAgICAiaW52b2tlX3ZpaWlpZiI6IGludm9rZV92aWlpaWYsCiAgICAgICAgImludm9rZV92aWlpaWZmIjogaW52b2tlX3ZpaWlpZmYsCiAgICAgICAgImludm9rZV92aWlpaWZmZmZpaSI6IGludm9rZV92aWlpaWZmZmZpaSwKICAgICAgICAiaW52b2tlX3ZpaWlpZmkiOiBpbnZva2VfdmlpaWlmaSwKICAgICAgICAiaW52b2tlX3ZpaWlpZmlpIjogaW52b2tlX3ZpaWlpZmlpLAogICAgICAgICJpbnZva2VfdmlpaWlmaWlpaWlmIjogaW52b2tlX3ZpaWlpZmlpaWlpZiwKICAgICAgICAiaW52b2tlX3ZpaWlpaSI6IGludm9rZV92aWlpaWksCiAgICAgICAgImludm9rZV92aWlpaWlmIjogaW52b2tlX3ZpaWlpaWYsCiAgICAgICAgImludm9rZV92aWlpaWlmZmkiOiBpbnZva2VfdmlpaWlpZmZpLAogICAgICAgICJpbnZva2VfdmlpaWlpZmZpaSI6IGludm9rZV92aWlpaWlmZmlpLAogICAgICAgICJpbnZva2VfdmlpaWlpZmkiOiBpbnZva2VfdmlpaWlpZmksCiAgICAgICAgImludm9rZV92aWlpaWlpIjogaW52b2tlX3ZpaWlpaWksCiAgICAgICAgImludm9rZV92aWlpaWlpZiI6IGludm9rZV92aWlpaWlpZiwKICAgICAgICAiaW52b2tlX3ZpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpLAogICAgICAgICJpbnZva2VfdmlpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpaSwKICAgICAgICAiaW52b2tlX3ZpaWlpaWlpaWkiOiBpbnZva2VfdmlpaWlpaWlpaSwKICAgICAgICAiaW52b2tlX3ZpaWlpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpaWlpLAogICAgICAgICJpbnZva2VfdmlpaWlpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpaWlpaSwKICAgICAgICAiaW52b2tlX3ZpaWlpaWlpaWlpaWZpaSI6IGludm9rZV92aWlpaWlpaWlpaWlmaWksCiAgICAgICAgImludm9rZV92aWlpaWlpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpaWlpaWksCiAgICAgICAgImludm9rZV92aWlpaWlpaWlpaWlpaSI6IGludm9rZV92aWlpaWlpaWlpaWlpaSwKICAgICAgICAiaW52b2tlX3ZpaWlpaWlpaWlpaWlpaSI6IGludm9rZV92aWlpaWlpaWlpaWlpaWksCiAgICAgICAgImludm9rZV92aWlpaWlpaWlpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpaWlpaWlpaWksCiAgICAgICAgImludm9rZV92aWlpaWlpaWlpaWlpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlpaWlpaWlpaWlpaWksCiAgICAgICAgImludm9rZV92aWlpaWlpaWlpamkiOiBpbnZva2VfdmlpaWlpaWlpaWppLAogICAgICAgICJpbnZva2VfdmlpaWlpaWlqaSI6IGludm9rZV92aWlpaWlpaWppLAogICAgICAgICJpbnZva2VfdmlpaWlpaWlqaWkiOiBpbnZva2VfdmlpaWlpaWlqaWksCiAgICAgICAgImludm9rZV92aWlpaWlqaWkiOiBpbnZva2VfdmlpaWlpamlpLAogICAgICAgICJpbnZva2VfdmlpaWlqaSI6IGludm9rZV92aWlpaWppLAogICAgICAgICJpbnZva2VfdmlpaWlqaWkiOiBpbnZva2VfdmlpaWlqaWksCiAgICAgICAgImludm9rZV92aWlpaWppaWlpIjogaW52b2tlX3ZpaWlpamlpaWksCiAgICAgICAgImludm9rZV92aWlpaWpqaWlpIjogaW52b2tlX3ZpaWlpamppaWksCiAgICAgICAgImludm9rZV92aWlpamkiOiBpbnZva2VfdmlpaWppLAogICAgICAgICJpbnZva2VfdmlpaWpqaSI6IGludm9rZV92aWlpamppLAogICAgICAgICJpbnZva2VfdmlpaWpqaWkiOiBpbnZva2VfdmlpaWpqaWksCiAgICAgICAgImludm9rZV92aWlpamppaWkiOiBpbnZva2VfdmlpaWpqaWlpLAogICAgICAgICJpbnZva2VfdmlpaiI6IGludm9rZV92aWlqLAogICAgICAgICJpbnZva2VfdmlpamkiOiBpbnZva2VfdmlpamksCiAgICAgICAgImludm9rZV92aWlqaWkiOiBpbnZva2VfdmlpamlpLAogICAgICAgICJpbnZva2VfdmlpamlpaWkiOiBpbnZva2VfdmlpamlpaWksCiAgICAgICAgImludm9rZV92aWlqaWlpaWkiOiBpbnZva2VfdmlpamlpaWlpLAogICAgICAgICJpbnZva2VfdmlpamlpamlpaSI6IGludm9rZV92aWlqaWlqaWlpLAogICAgICAgICJpbnZva2VfdmlpamlqaWkiOiBpbnZva2VfdmlpamlqaWksCiAgICAgICAgImludm9rZV92aWlqaWppaWkiOiBpbnZva2VfdmlpamlqaWlpLAogICAgICAgICJpbnZva2VfdmlpamppIjogaW52b2tlX3ZpaWpqaSwKICAgICAgICAiaW52b2tlX3ZpaWpqaWkiOiBpbnZva2VfdmlpamppaSwKICAgICAgICAiaW52b2tlX3ZpaWpqaWlpIjogaW52b2tlX3ZpaWpqaWlpLAogICAgICAgICJpbnZva2VfdmlpampqaSI6IGludm9rZV92aWlqamppLAogICAgICAgICJpbnZva2VfdmlqIjogaW52b2tlX3ZpaiwKICAgICAgICAiaW52b2tlX3ZpamkiOiBpbnZva2VfdmlqaSwKICAgICAgICAiaW52b2tlX3ZpamlpIjogaW52b2tlX3ZpamlpLAogICAgICAgICJpbnZva2VfdmlqaWlpIjogaW52b2tlX3ZpamlpaSwKICAgICAgICAiaW52b2tlX3ZpamlqaSI6IGludm9rZV92aWppamksCiAgICAgICAgImludm9rZV92aWppamppIjogaW52b2tlX3ZpamlqamksCiAgICAgICAgImludm9rZV92aWpqaSI6IGludm9rZV92aWpqaSwKICAgICAgICAiaW52b2tlX3ZpamppaSI6IGludm9rZV92aWpqaWksCiAgICAgICAgImludm9rZV92aWpqamkiOiBpbnZva2VfdmlqamppLAogICAgICAgICJpbnZva2VfdmppIjogaW52b2tlX3ZqaSwKICAgICAgICAiaW52b2tlX3ZqaWkiOiBpbnZva2VfdmppaSwKICAgICAgICAiaW52b2tlX3ZqaWlpIjogaW52b2tlX3ZqaWlpLAogICAgICAgICJpbnZva2VfdmppaWlpIjogaW52b2tlX3ZqaWlpaSwKICAgICAgICAiaW52b2tlX3ZqamkiOiBpbnZva2VfdmpqaSwKICAgICAgICAiX0lNR19Mb2FkIjogX0lNR19Mb2FkLAogICAgICAgICJfSU1HX0xvYWRfUlciOiBfSU1HX0xvYWRfUlcsCiAgICAgICAgIl9KU19DdXJzb3JfU2V0SW1hZ2UiOiBfSlNfQ3Vyc29yX1NldEltYWdlLAogICAgICAgICJfSlNfQ3Vyc29yX1NldFNob3ciOiBfSlNfQ3Vyc29yX1NldFNob3csCiAgICAgICAgIl9KU19FdmFsX0NsZWFyVGltZW91dCI6IF9KU19FdmFsX0NsZWFyVGltZW91dCwKICAgICAgICAiX0pTX0V2YWxfT3BlblVSTCI6IF9KU19FdmFsX09wZW5VUkwsCiAgICAgICAgIl9KU19FdmFsX1NldFRpbWVvdXQiOiBfSlNfRXZhbF9TZXRUaW1lb3V0LAogICAgICAgICJfSlNfRmlsZVN5c3RlbV9TZXRTeW5jSW50ZXJ2YWwiOiBfSlNfRmlsZVN5c3RlbV9TZXRTeW5jSW50ZXJ2YWwsCiAgICAgICAgIl9KU19GaWxlU3lzdGVtX1N5bmMiOiBfSlNfRmlsZVN5c3RlbV9TeW5jLAogICAgICAgICJfSlNfTG9nX1N0YWNrVHJhY2UiOiBfSlNfTG9nX1N0YWNrVHJhY2UsCiAgICAgICAgIl9KU19Qb2tpU0RLX2NvbW1lcmNpYWxCcmVhayI6IF9KU19Qb2tpU0RLX2NvbW1lcmNpYWxCcmVhaywKICAgICAgICAiX0pTX1Bva2lTREtfY3VzdG9tRXZlbnQiOiBfSlNfUG9raVNES19jdXN0b21FdmVudCwKICAgICAgICAiX0pTX1Bva2lTREtfZGVzdHJveUFkIjogX0pTX1Bva2lTREtfZGVzdHJveUFkLAogICAgICAgICJfSlNfUG9raVNES19kaXNwbGF5QWQiOiBfSlNfUG9raVNES19kaXNwbGF5QWQsCiAgICAgICAgIl9KU19Qb2tpU0RLX2dhbWVJbnRlcmFjdGl2ZSI6IF9KU19Qb2tpU0RLX2dhbWVJbnRlcmFjdGl2ZSwKICAgICAgICAiX0pTX1Bva2lTREtfZ2FtZUxvYWRpbmdGaW5pc2hlZCI6IF9KU19Qb2tpU0RLX2dhbWVMb2FkaW5nRmluaXNoZWQsCiAgICAgICAgIl9KU19Qb2tpU0RLX2dhbWVMb2FkaW5nUHJvZ3Jlc3MiOiBfSlNfUG9raVNES19nYW1lTG9hZGluZ1Byb2dyZXNzLAogICAgICAgICJfSlNfUG9raVNES19nYW1lTG9hZGluZ1N0YXJ0IjogX0pTX1Bva2lTREtfZ2FtZUxvYWRpbmdTdGFydCwKICAgICAgICAiX0pTX1Bva2lTREtfZ2FtZXBsYXlTdGFydCI6IF9KU19Qb2tpU0RLX2dhbWVwbGF5U3RhcnQsCiAgICAgICAgIl9KU19Qb2tpU0RLX2dhbWVwbGF5U3RvcCI6IF9KU19Qb2tpU0RLX2dhbWVwbGF5U3RvcCwKICAgICAgICAiX0pTX1Bva2lTREtfaGFwcHlUaW1lIjogX0pTX1Bva2lTREtfaGFwcHlUaW1lLAogICAgICAgICJfSlNfUG9raVNES19pbml0UG9raUJyaWRnZSI6IF9KU19Qb2tpU0RLX2luaXRQb2tpQnJpZGdlLAogICAgICAgICJfSlNfUG9raVNES19yZXdhcmRlZEJyZWFrIjogX0pTX1Bva2lTREtfcmV3YXJkZWRCcmVhaywKICAgICAgICAiX0pTX1Bva2lTREtfcm91bmRFbmQiOiBfSlNfUG9raVNES19yb3VuZEVuZCwKICAgICAgICAiX0pTX1Bva2lTREtfcm91bmRTdGFydCI6IF9KU19Qb2tpU0RLX3JvdW5kU3RhcnQsCiAgICAgICAgIl9KU19Qb2tpU0RLX3NldFBsYXllckFnZSI6IF9KU19Qb2tpU0RLX3NldFBsYXllckFnZSwKICAgICAgICAiX0pTX1Bva2lTREtfdG9nZ2xlUGxheWVyQWR2ZXJ0aXNpbmdDb25zZW50IjogX0pTX1Bva2lTREtfdG9nZ2xlUGxheWVyQWR2ZXJ0aXNpbmdDb25zZW50LAogICAgICAgICJfSlNfU291bmRfQ3JlYXRlX0NoYW5uZWwiOiBfSlNfU291bmRfQ3JlYXRlX0NoYW5uZWwsCiAgICAgICAgIl9KU19Tb3VuZF9HZXRMZW5ndGgiOiBfSlNfU291bmRfR2V0TGVuZ3RoLAogICAgICAgICJfSlNfU291bmRfR2V0TG9hZFN0YXRlIjogX0pTX1NvdW5kX0dldExvYWRTdGF0ZSwKICAgICAgICAiX0pTX1NvdW5kX0luaXQiOiBfSlNfU291bmRfSW5pdCwKICAgICAgICAiX0pTX1NvdW5kX0xvYWQiOiBfSlNfU291bmRfTG9hZCwKICAgICAgICAiX0pTX1NvdW5kX0xvYWRfUENNIjogX0pTX1NvdW5kX0xvYWRfUENNLAogICAgICAgICJfSlNfU291bmRfUGxheSI6IF9KU19Tb3VuZF9QbGF5LAogICAgICAgICJfSlNfU291bmRfUmVsZWFzZUluc3RhbmNlIjogX0pTX1NvdW5kX1JlbGVhc2VJbnN0YW5jZSwKICAgICAgICAiX0pTX1NvdW5kX1Jlc3VtZUlmTmVlZGVkIjogX0pTX1NvdW5kX1Jlc3VtZUlmTmVlZGVkLAogICAgICAgICJfSlNfU291bmRfU2V0M0QiOiBfSlNfU291bmRfU2V0M0QsCiAgICAgICAgIl9KU19Tb3VuZF9TZXRMaXN0ZW5lck9yaWVudGF0aW9uIjogX0pTX1NvdW5kX1NldExpc3RlbmVyT3JpZW50YXRpb24sCiAgICAgICAgIl9KU19Tb3VuZF9TZXRMaXN0ZW5lclBvc2l0aW9uIjogX0pTX1NvdW5kX1NldExpc3RlbmVyUG9zaXRpb24sCiAgICAgICAgIl9KU19Tb3VuZF9TZXRMb29wIjogX0pTX1NvdW5kX1NldExvb3AsCiAgICAgICAgIl9KU19Tb3VuZF9TZXRMb29wUG9pbnRzIjogX0pTX1NvdW5kX1NldExvb3BQb2ludHMsCiAgICAgICAgIl9KU19Tb3VuZF9TZXRQaXRjaCI6IF9KU19Tb3VuZF9TZXRQaXRjaCwKICAgICAgICAiX0pTX1NvdW5kX1NldFBvc2l0aW9uIjogX0pTX1NvdW5kX1NldFBvc2l0aW9uLAogICAgICAgICJfSlNfU291bmRfU2V0Vm9sdW1lIjogX0pTX1NvdW5kX1NldFZvbHVtZSwKICAgICAgICAiX0pTX1NvdW5kX1N0b3AiOiBfSlNfU291bmRfU3RvcCwKICAgICAgICAiX0pTX1N5c3RlbUluZm9fR2V0QnJvd3Nlck5hbWUiOiBfSlNfU3lzdGVtSW5mb19HZXRCcm93c2VyTmFtZSwKICAgICAgICAiX0pTX1N5c3RlbUluZm9fR2V0QnJvd3NlclZlcnNpb25TdHJpbmciOiBfSlNfU3lzdGVtSW5mb19HZXRCcm93c2VyVmVyc2lvblN0cmluZywKICAgICAgICAiX0pTX1N5c3RlbUluZm9fR2V0Q3VycmVudENhbnZhc0hlaWdodCI6IF9KU19TeXN0ZW1JbmZvX0dldEN1cnJlbnRDYW52YXNIZWlnaHQsCiAgICAgICAgIl9KU19TeXN0ZW1JbmZvX0dldEN1cnJlbnRDYW52YXNXaWR0aCI6IF9KU19TeXN0ZW1JbmZvX0dldEN1cnJlbnRDYW52YXNXaWR0aCwKICAgICAgICAiX0pTX1N5c3RlbUluZm9fR2V0RG9jdW1lbnRVUkwiOiBfSlNfU3lzdGVtSW5mb19HZXREb2N1bWVudFVSTCwKICAgICAgICAiX0pTX1N5c3RlbUluZm9fR2V0R1BVSW5mbyI6IF9KU19TeXN0ZW1JbmZvX0dldEdQVUluZm8sCiAgICAgICAgIl9KU19TeXN0ZW1JbmZvX0dldEhlaWdodCI6IF9KU19TeXN0ZW1JbmZvX0dldEhlaWdodCwKICAgICAgICAiX0pTX1N5c3RlbUluZm9fR2V0TGFuZ3VhZ2UiOiBfSlNfU3lzdGVtSW5mb19HZXRMYW5ndWFnZSwKICAgICAgICAiX0pTX1N5c3RlbUluZm9fR2V0TWVtb3J5IjogX0pTX1N5c3RlbUluZm9fR2V0TWVtb3J5LAogICAgICAgICJfSlNfU3lzdGVtSW5mb19HZXRPUyI6IF9KU19TeXN0ZW1JbmZvX0dldE9TLAogICAgICAgICJfSlNfU3lzdGVtSW5mb19HZXRXaWR0aCI6IF9KU19TeXN0ZW1JbmZvX0dldFdpZHRoLAogICAgICAgICJfSlNfU3lzdGVtSW5mb19IYXNDdXJzb3JMb2NrIjogX0pTX1N5c3RlbUluZm9fSGFzQ3Vyc29yTG9jaywKICAgICAgICAiX0pTX1N5c3RlbUluZm9fSGFzRnVsbHNjcmVlbiI6IF9KU19TeXN0ZW1JbmZvX0hhc0Z1bGxzY3JlZW4sCiAgICAgICAgIl9KU19TeXN0ZW1JbmZvX0hhc1dlYkdMIjogX0pTX1N5c3RlbUluZm9fSGFzV2ViR0wsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19BZGRIb3N0IjogX0pTX1VORVRXZWJTb2NrZXRzX0FkZEhvc3QsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Ib3N0c0NvbnRhaW5pbmdNZXNzYWdlc0NsZWFuSG9zdCI6IF9KU19VTkVUV2ViU29ja2V0c19Ib3N0c0NvbnRhaW5pbmdNZXNzYWdlc0NsZWFuSG9zdCwKICAgICAgICAiX0pTX1VORVRXZWJTb2NrZXRzX0hvc3RzQ29udGFpbmluZ01lc3NhZ2VzUHVzaCI6IF9KU19VTkVUV2ViU29ja2V0c19Ib3N0c0NvbnRhaW5pbmdNZXNzYWdlc1B1c2gsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Jbml0IjogX0pTX1VORVRXZWJTb2NrZXRzX0luaXQsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Jc0hvc3RDb3JyZWN0IjogX0pTX1VORVRXZWJTb2NrZXRzX0lzSG9zdENvcnJlY3QsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Jc0hvc3RSZWFkeVRvQ29ubmVjdCI6IF9KU19VTkVUV2ViU29ja2V0c19Jc0hvc3RSZWFkeVRvQ29ubmVjdCwKICAgICAgICAiX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldENsZWFuRXZudCI6IF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRDbGVhbkV2bnQsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRDbGVhbkV2bnRGcm9tSG9zdCI6IF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRDbGVhbkV2bnRGcm9tSG9zdCwKICAgICAgICAiX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldENsb3NlIjogX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldENsb3NlLAogICAgICAgICJfSlNfVU5FVFdlYlNvY2tldHNfU29ja2V0Q3JlYXRlIjogX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldENyZWF0ZSwKICAgICAgICAiX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldFJlY3ZFdm50QnVmZiI6IF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudEJ1ZmYsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudEJ1ZmZGcm9tSG9zdCI6IF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudEJ1ZmZGcm9tSG9zdCwKICAgICAgICAiX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldFJlY3ZFdm50QnVmZkxlbmd0aCI6IF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudEJ1ZmZMZW5ndGgsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudEJ1ZmZMZW5ndGhGcm9tSG9zdCI6IF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudEJ1ZmZMZW5ndGhGcm9tSG9zdCwKICAgICAgICAiX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldFJlY3ZFdm50SG9zdCI6IF9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudEhvc3QsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRSZWN2RXZudFR5cGUiOiBfSlNfVU5FVFdlYlNvY2tldHNfU29ja2V0UmVjdkV2bnRUeXBlLAogICAgICAgICJfSlNfVU5FVFdlYlNvY2tldHNfU29ja2V0UmVjdkV2bnRUeXBlRnJvbUhvc3QiOiBfSlNfVU5FVFdlYlNvY2tldHNfU29ja2V0UmVjdkV2bnRUeXBlRnJvbUhvc3QsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRTZW5kIjogX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldFNlbmQsCiAgICAgICAgIl9KU19VTkVUV2ViU29ja2V0c19Tb2NrZXRTdG9wIjogX0pTX1VORVRXZWJTb2NrZXRzX1NvY2tldFN0b3AsCiAgICAgICAgIl9KU19XZWJHTF9Jbml0Q29udGV4dEF0dHJpYnV0ZXMiOiBfSlNfV2ViR0xfSW5pdENvbnRleHRBdHRyaWJ1dGVzLAogICAgICAgICJfSlNfV2ViUmVxdWVzdF9BYm9ydCI6IF9KU19XZWJSZXF1ZXN0X0Fib3J0LAogICAgICAgICJfSlNfV2ViUmVxdWVzdF9DcmVhdGUiOiBfSlNfV2ViUmVxdWVzdF9DcmVhdGUsCiAgICAgICAgIl9KU19XZWJSZXF1ZXN0X0dldFJlc3BvbnNlSGVhZGVycyI6IF9KU19XZWJSZXF1ZXN0X0dldFJlc3BvbnNlSGVhZGVycywKICAgICAgICAiX0pTX1dlYlJlcXVlc3RfUmVsZWFzZSI6IF9KU19XZWJSZXF1ZXN0X1JlbGVhc2UsCiAgICAgICAgIl9KU19XZWJSZXF1ZXN0X1NlbmQiOiBfSlNfV2ViUmVxdWVzdF9TZW5kLAogICAgICAgICJfSlNfV2ViUmVxdWVzdF9TZXRQcm9ncmVzc0hhbmRsZXIiOiBfSlNfV2ViUmVxdWVzdF9TZXRQcm9ncmVzc0hhbmRsZXIsCiAgICAgICAgIl9KU19XZWJSZXF1ZXN0X1NldFJlcXVlc3RIZWFkZXIiOiBfSlNfV2ViUmVxdWVzdF9TZXRSZXF1ZXN0SGVhZGVyLAogICAgICAgICJfSlNfV2ViUmVxdWVzdF9TZXRSZXNwb25zZUhhbmRsZXIiOiBfSlNfV2ViUmVxdWVzdF9TZXRSZXNwb25zZUhhbmRsZXIsCiAgICAgICAgIl9KU19XZWJSZXF1ZXN0X1NldFRpbWVvdXQiOiBfSlNfV2ViUmVxdWVzdF9TZXRUaW1lb3V0LAogICAgICAgICJfTWl4X0ZyZWVDaHVuayI6IF9NaXhfRnJlZUNodW5rLAogICAgICAgICJfTWl4X0hhbHRNdXNpYyI6IF9NaXhfSGFsdE11c2ljLAogICAgICAgICJfTWl4X0xvYWRXQVZfUlciOiBfTWl4X0xvYWRXQVZfUlcsCiAgICAgICAgIl9NaXhfUGxheUNoYW5uZWwiOiBfTWl4X1BsYXlDaGFubmVsLAogICAgICAgICJfTWl4X1BsYXlNdXNpYyI6IF9NaXhfUGxheU11c2ljLAogICAgICAgICJfU0RMX0Nsb3NlQXVkaW8iOiBfU0RMX0Nsb3NlQXVkaW8sCiAgICAgICAgIl9TRExfRnJlZVJXIjogX1NETF9GcmVlUlcsCiAgICAgICAgIl9TRExfR0xfU3dhcEJ1ZmZlcnMiOiBfU0RMX0dMX1N3YXBCdWZmZXJzLAogICAgICAgICJfU0RMX0dldFRpY2tzIjogX1NETF9HZXRUaWNrcywKICAgICAgICAiX1NETF9Mb2NrU3VyZmFjZSI6IF9TRExfTG9ja1N1cmZhY2UsCiAgICAgICAgIl9TRExfUGF1c2VBdWRpbyI6IF9TRExfUGF1c2VBdWRpbywKICAgICAgICAiX1NETF9SV0Zyb21Db25zdE1lbSI6IF9TRExfUldGcm9tQ29uc3RNZW0sCiAgICAgICAgIl9TRExfUldGcm9tRmlsZSI6IF9TRExfUldGcm9tRmlsZSwKICAgICAgICAiX1NETF9VcHBlckJsaXQiOiBfU0RMX1VwcGVyQmxpdCwKICAgICAgICAiX1NETF9VcHBlckJsaXRTY2FsZWQiOiBfU0RMX1VwcGVyQmxpdFNjYWxlZCwKICAgICAgICAiX1N5bmNGaWxlcyI6IF9TeW5jRmlsZXMsCiAgICAgICAgIl9UVEZfRm9udEhlaWdodCI6IF9UVEZfRm9udEhlaWdodCwKICAgICAgICAiX1RURl9SZW5kZXJUZXh0X1NvbGlkIjogX1RURl9SZW5kZXJUZXh0X1NvbGlkLAogICAgICAgICJfVFRGX1NpemVUZXh0IjogX1RURl9TaXplVGV4dCwKICAgICAgICAiX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYiOiBfX1pTdDE4dW5jYXVnaHRfZXhjZXB0aW9udiwKICAgICAgICAiX19fYnVpbGRFbnZpcm9ubWVudCI6IF9fX2J1aWxkRW52aXJvbm1lbnQsCiAgICAgICAgIl9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb24iOiBfX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uLAogICAgICAgICJfX19jeGFfYmVnaW5fY2F0Y2giOiBfX19jeGFfYmVnaW5fY2F0Y2gsCiAgICAgICAgIl9fX2N4YV9lbmRfY2F0Y2giOiBfX19jeGFfZW5kX2NhdGNoLAogICAgICAgICJfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaCI6IF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoLAogICAgICAgICJfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaF8yIjogX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2hfMiwKICAgICAgICAiX19fY3hhX2ZpbmRfbWF0Y2hpbmdfY2F0Y2hfMyI6IF9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoXzMsCiAgICAgICAgIl9fX2N4YV9maW5kX21hdGNoaW5nX2NhdGNoXzQiOiBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaF80LAogICAgICAgICJfX19jeGFfZnJlZV9leGNlcHRpb24iOiBfX19jeGFfZnJlZV9leGNlcHRpb24sCiAgICAgICAgIl9fX2N4YV9wdXJlX3ZpcnR1YWwiOiBfX19jeGFfcHVyZV92aXJ0dWFsLAogICAgICAgICJfX19jeGFfcmV0aHJvdyI6IF9fX2N4YV9yZXRocm93LAogICAgICAgICJfX19jeGFfdGhyb3ciOiBfX19jeGFfdGhyb3csCiAgICAgICAgIl9fX2d4eF9wZXJzb25hbGl0eV92MCI6IF9fX2d4eF9wZXJzb25hbGl0eV92MCwKICAgICAgICAiX19fbG9jayI6IF9fX2xvY2ssCiAgICAgICAgIl9fX21hcF9maWxlIjogX19fbWFwX2ZpbGUsCiAgICAgICAgIl9fX3Jlc3VtZUV4Y2VwdGlvbiI6IF9fX3Jlc3VtZUV4Y2VwdGlvbiwKICAgICAgICAiX19fc2V0RXJyTm8iOiBfX19zZXRFcnJObywKICAgICAgICAiX19fc3lzY2FsbDEwIjogX19fc3lzY2FsbDEwLAogICAgICAgICJfX19zeXNjYWxsMTAyIjogX19fc3lzY2FsbDEwMiwKICAgICAgICAiX19fc3lzY2FsbDEyMiI6IF9fX3N5c2NhbGwxMjIsCiAgICAgICAgIl9fX3N5c2NhbGwxNDAiOiBfX19zeXNjYWxsMTQwLAogICAgICAgICJfX19zeXNjYWxsMTQyIjogX19fc3lzY2FsbDE0MiwKICAgICAgICAiX19fc3lzY2FsbDE0NSI6IF9fX3N5c2NhbGwxNDUsCiAgICAgICAgIl9fX3N5c2NhbGwxNDYiOiBfX19zeXNjYWxsMTQ2LAogICAgICAgICJfX19zeXNjYWxsMTUiOiBfX19zeXNjYWxsMTUsCiAgICAgICAgIl9fX3N5c2NhbGwxODMiOiBfX19zeXNjYWxsMTgzLAogICAgICAgICJfX19zeXNjYWxsMTkyIjogX19fc3lzY2FsbDE5MiwKICAgICAgICAiX19fc3lzY2FsbDE5MyI6IF9fX3N5c2NhbGwxOTMsCiAgICAgICAgIl9fX3N5c2NhbGwxOTQiOiBfX19zeXNjYWxsMTk0LAogICAgICAgICJfX19zeXNjYWxsMTk1IjogX19fc3lzY2FsbDE5NSwKICAgICAgICAiX19fc3lzY2FsbDE5NiI6IF9fX3N5c2NhbGwxOTYsCiAgICAgICAgIl9fX3N5c2NhbGwxOTciOiBfX19zeXNjYWxsMTk3LAogICAgICAgICJfX19zeXNjYWxsMTk5IjogX19fc3lzY2FsbDE5OSwKICAgICAgICAiX19fc3lzY2FsbDIwMiI6IF9fX3N5c2NhbGwyMDIsCiAgICAgICAgIl9fX3N5c2NhbGwyMjAiOiBfX19zeXNjYWxsMjIwLAogICAgICAgICJfX19zeXNjYWxsMjIxIjogX19fc3lzY2FsbDIyMSwKICAgICAgICAiX19fc3lzY2FsbDI2OCI6IF9fX3N5c2NhbGwyNjgsCiAgICAgICAgIl9fX3N5c2NhbGwzIjogX19fc3lzY2FsbDMsCiAgICAgICAgIl9fX3N5c2NhbGwzMyI6IF9fX3N5c2NhbGwzMywKICAgICAgICAiX19fc3lzY2FsbDM4IjogX19fc3lzY2FsbDM4LAogICAgICAgICJfX19zeXNjYWxsMzkiOiBfX19zeXNjYWxsMzksCiAgICAgICAgIl9fX3N5c2NhbGw0IjogX19fc3lzY2FsbDQsCiAgICAgICAgIl9fX3N5c2NhbGw0MCI6IF9fX3N5c2NhbGw0MCwKICAgICAgICAiX19fc3lzY2FsbDQxIjogX19fc3lzY2FsbDQxLAogICAgICAgICJfX19zeXNjYWxsNDIiOiBfX19zeXNjYWxsNDIsCiAgICAgICAgIl9fX3N5c2NhbGw1IjogX19fc3lzY2FsbDUsCiAgICAgICAgIl9fX3N5c2NhbGw1NCI6IF9fX3N5c2NhbGw1NCwKICAgICAgICAiX19fc3lzY2FsbDYiOiBfX19zeXNjYWxsNiwKICAgICAgICAiX19fc3lzY2FsbDc3IjogX19fc3lzY2FsbDc3LAogICAgICAgICJfX19zeXNjYWxsODUiOiBfX19zeXNjYWxsODUsCiAgICAgICAgIl9fX3N5c2NhbGw5MSI6IF9fX3N5c2NhbGw5MSwKICAgICAgICAiX19fdW5sb2NrIjogX19fdW5sb2NrLAogICAgICAgICJfX2FkZERheXMiOiBfX2FkZERheXMsCiAgICAgICAgIl9fYXJyYXlTdW0iOiBfX2FycmF5U3VtLAogICAgICAgICJfX2Vtc2NyaXB0ZW5fc2FtcGxlX2dhbWVwYWRfZGF0YSI6IF9fZW1zY3JpcHRlbl9zYW1wbGVfZ2FtZXBhZF9kYXRhLAogICAgICAgICJfX2Vtc2NyaXB0ZW5fdHJhdmVyc2Vfc3RhY2siOiBfX2Vtc2NyaXB0ZW5fdHJhdmVyc2Vfc3RhY2ssCiAgICAgICAgIl9fZXhpdCI6IF9fZXhpdCwKICAgICAgICAiX19mb3JtYXRTdHJpbmciOiBfX2Zvcm1hdFN0cmluZywKICAgICAgICAiX19pbmV0X250b3A0X3JhdyI6IF9faW5ldF9udG9wNF9yYXcsCiAgICAgICAgIl9faW5ldF9udG9wNl9yYXciOiBfX2luZXRfbnRvcDZfcmF3LAogICAgICAgICJfX2luZXRfcHRvbjRfcmF3IjogX19pbmV0X3B0b240X3JhdywKICAgICAgICAiX19pbmV0X3B0b242X3JhdyI6IF9faW5ldF9wdG9uNl9yYXcsCiAgICAgICAgIl9faXNMZWFwWWVhciI6IF9faXNMZWFwWWVhciwKICAgICAgICAiX19yZWFkX3NvY2thZGRyIjogX19yZWFkX3NvY2thZGRyLAogICAgICAgICJfX3JlYWxseU5lZ2F0aXZlIjogX19yZWFsbHlOZWdhdGl2ZSwKICAgICAgICAiX19zZXRMZXR0ZXJib3giOiBfX3NldExldHRlcmJveCwKICAgICAgICAiX193cml0ZV9zb2NrYWRkciI6IF9fd3JpdGVfc29ja2FkZHIsCiAgICAgICAgIl9hYm9ydCI6IF9hYm9ydCwKICAgICAgICAiX2F0ZXhpdCI6IF9hdGV4aXQsCiAgICAgICAgIl9jbG9jayI6IF9jbG9jaywKICAgICAgICAiX2Nsb2NrX2dldHJlcyI6IF9jbG9ja19nZXRyZXMsCiAgICAgICAgIl9jbG9ja19nZXR0aW1lIjogX2Nsb2NrX2dldHRpbWUsCiAgICAgICAgIl9kaWZmdGltZSI6IF9kaWZmdGltZSwKICAgICAgICAiX2RsY2xvc2UiOiBfZGxjbG9zZSwKICAgICAgICAiX2Rsb3BlbiI6IF9kbG9wZW4sCiAgICAgICAgIl9kbHN5bSI6IF9kbHN5bSwKICAgICAgICAiX2Vtc2NyaXB0ZW5fY2FuY2VsX21haW5fbG9vcCI6IF9lbXNjcmlwdGVuX2NhbmNlbF9tYWluX2xvb3AsCiAgICAgICAgIl9lbXNjcmlwdGVuX2RvX3JlcXVlc3RfZnVsbHNjcmVlbiI6IF9lbXNjcmlwdGVuX2RvX3JlcXVlc3RfZnVsbHNjcmVlbiwKICAgICAgICAiX2Vtc2NyaXB0ZW5fZXhpdF9mdWxsc2NyZWVuIjogX2Vtc2NyaXB0ZW5fZXhpdF9mdWxsc2NyZWVuLAogICAgICAgICJfZW1zY3JpcHRlbl9leGl0X3BvaW50ZXJsb2NrIjogX2Vtc2NyaXB0ZW5fZXhpdF9wb2ludGVybG9jaywKICAgICAgICAiX2Vtc2NyaXB0ZW5fZ2V0X2NhbGxzdGFja19qcyI6IF9lbXNjcmlwdGVuX2dldF9jYWxsc3RhY2tfanMsCiAgICAgICAgIl9lbXNjcmlwdGVuX2dldF9mdWxsc2NyZWVuX3N0YXR1cyI6IF9lbXNjcmlwdGVuX2dldF9mdWxsc2NyZWVuX3N0YXR1cywKICAgICAgICAiX2Vtc2NyaXB0ZW5fZ2V0X2dhbWVwYWRfc3RhdHVzIjogX2Vtc2NyaXB0ZW5fZ2V0X2dhbWVwYWRfc3RhdHVzLAogICAgICAgICJfZW1zY3JpcHRlbl9nZXRfbWFpbl9sb29wX3RpbWluZyI6IF9lbXNjcmlwdGVuX2dldF9tYWluX2xvb3BfdGltaW5nLAogICAgICAgICJfZW1zY3JpcHRlbl9nZXRfbm93IjogX2Vtc2NyaXB0ZW5fZ2V0X25vdywKICAgICAgICAiX2Vtc2NyaXB0ZW5fZ2V0X25vd19pc19tb25vdG9uaWMiOiBfZW1zY3JpcHRlbl9nZXRfbm93X2lzX21vbm90b25pYywKICAgICAgICAiX2Vtc2NyaXB0ZW5fZ2V0X25vd19yZXMiOiBfZW1zY3JpcHRlbl9nZXRfbm93X3JlcywKICAgICAgICAiX2Vtc2NyaXB0ZW5fZ2V0X251bV9nYW1lcGFkcyI6IF9lbXNjcmlwdGVuX2dldF9udW1fZ2FtZXBhZHMsCiAgICAgICAgIl9lbXNjcmlwdGVuX2hhc190aHJlYWRpbmdfc3VwcG9ydCI6IF9lbXNjcmlwdGVuX2hhc190aHJlYWRpbmdfc3VwcG9ydCwKICAgICAgICAiX2Vtc2NyaXB0ZW5faXNfd2ViZ2xfY29udGV4dF9sb3N0IjogX2Vtc2NyaXB0ZW5faXNfd2ViZ2xfY29udGV4dF9sb3N0LAogICAgICAgICJfZW1zY3JpcHRlbl9sb2ciOiBfZW1zY3JpcHRlbl9sb2csCiAgICAgICAgIl9lbXNjcmlwdGVuX2xvZ19qcyI6IF9lbXNjcmlwdGVuX2xvZ19qcywKICAgICAgICAiX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZyI6IF9lbXNjcmlwdGVuX21lbWNweV9iaWcsCiAgICAgICAgIl9lbXNjcmlwdGVuX251bV9sb2dpY2FsX2NvcmVzIjogX2Vtc2NyaXB0ZW5fbnVtX2xvZ2ljYWxfY29yZXMsCiAgICAgICAgIl9lbXNjcmlwdGVuX3JlcXVlc3RfZnVsbHNjcmVlbiI6IF9lbXNjcmlwdGVuX3JlcXVlc3RfZnVsbHNjcmVlbiwKICAgICAgICAiX2Vtc2NyaXB0ZW5fcmVxdWVzdF9wb2ludGVybG9jayI6IF9lbXNjcmlwdGVuX3JlcXVlc3RfcG9pbnRlcmxvY2ssCiAgICAgICAgIl9lbXNjcmlwdGVuX3NldF9ibHVyX2NhbGxiYWNrIjogX2Vtc2NyaXB0ZW5fc2V0X2JsdXJfY2FsbGJhY2ssCiAgICAgICAgIl9lbXNjcmlwdGVuX3NldF9jYW52YXNfc2l6ZSI6IF9lbXNjcmlwdGVuX3NldF9jYW52YXNfc2l6ZSwKICAgICAgICAiX2Vtc2NyaXB0ZW5fc2V0X2RldmljZW1vdGlvbl9jYWxsYmFjayI6IF9lbXNjcmlwdGVuX3NldF9kZXZpY2Vtb3Rpb25fY2FsbGJhY2ssCiAgICAgICAgIl9lbXNjcmlwdGVuX3NldF9kZXZpY2VvcmllbnRhdGlvbl9jYWxsYmFjayI6IF9lbXNjcmlwdGVuX3NldF9kZXZpY2VvcmllbnRhdGlvbl9jYWxsYmFjaywKICAgICAgICAiX2Vtc2NyaXB0ZW5fc2V0X2ZvY3VzX2NhbGxiYWNrIjogX2Vtc2NyaXB0ZW5fc2V0X2ZvY3VzX2NhbGxiYWNrLAogICAgICAgICJfZW1zY3JpcHRlbl9zZXRfZnVsbHNjcmVlbmNoYW5nZV9jYWxsYmFjayI6IF9lbXNjcmlwdGVuX3NldF9mdWxsc2NyZWVuY2hhbmdlX2NhbGxiYWNrLAogICAgICAgICJfZW1zY3JpcHRlbl9zZXRfa2V5ZG93bl9jYWxsYmFjayI6IF9lbXNjcmlwdGVuX3NldF9rZXlkb3duX2NhbGxiYWNrLAogICAgICAgICJfZW1zY3JpcHRlbl9zZXRfa2V5cHJlc3NfY2FsbGJhY2siOiBfZW1zY3JpcHRlbl9zZXRfa2V5cHJlc3NfY2FsbGJhY2ssCiAgICAgICAgIl9lbXNjcmlwdGVuX3NldF9rZXl1cF9jYWxsYmFjayI6IF9lbXNjcmlwdGVuX3NldF9rZXl1cF9jYWxsYmFjaywKICAgICAgICAiX2Vtc2NyaXB0ZW5fc2V0X21haW5fbG9vcCI6IF9lbXNjcmlwdGVuX3NldF9tYWluX2xvb3AsCiAgICAgICAgIl9lbXNjcmlwdGVuX3NldF9tYWluX2xvb3BfdGltaW5nIjogX2Vtc2NyaXB0ZW5fc2V0X21haW5fbG9vcF90aW1pbmcsCiAgICAgICAgIl9lbXNjcmlwdGVuX3NldF9tb3VzZWRvd25fY2FsbGJhY2siOiBfZW1zY3JpcHRlbl9zZXRfbW91c2Vkb3duX2NhbGxiYWNrLAogICAgICAgICJfZW1zY3JpcHRlbl9zZXRfbW91c2Vtb3ZlX2NhbGxiYWNrIjogX2Vtc2NyaXB0ZW5fc2V0X21vdXNlbW92ZV9jYWxsYmFjaywKICAgICAgICAiX2Vtc2NyaXB0ZW5fc2V0X21vdXNldXBfY2FsbGJhY2siOiBfZW1zY3JpcHRlbl9zZXRfbW91c2V1cF9jYWxsYmFjaywKICAgICAgICAiX2Vtc2NyaXB0ZW5fc2V0X3RvdWNoY2FuY2VsX2NhbGxiYWNrIjogX2Vtc2NyaXB0ZW5fc2V0X3RvdWNoY2FuY2VsX2NhbGxiYWNrLAogICAgICAgICJfZW1zY3JpcHRlbl9zZXRfdG91Y2hlbmRfY2FsbGJhY2siOiBfZW1zY3JpcHRlbl9zZXRfdG91Y2hlbmRfY2FsbGJhY2ssCiAgICAgICAgIl9lbXNjcmlwdGVuX3NldF90b3VjaG1vdmVfY2FsbGJhY2siOiBfZW1zY3JpcHRlbl9zZXRfdG91Y2htb3ZlX2NhbGxiYWNrLAogICAgICAgICJfZW1zY3JpcHRlbl9zZXRfdG91Y2hzdGFydF9jYWxsYmFjayI6IF9lbXNjcmlwdGVuX3NldF90b3VjaHN0YXJ0X2NhbGxiYWNrLAogICAgICAgICJfZW1zY3JpcHRlbl9zZXRfd2hlZWxfY2FsbGJhY2siOiBfZW1zY3JpcHRlbl9zZXRfd2hlZWxfY2FsbGJhY2ssCiAgICAgICAgIl9lbXNjcmlwdGVuX3dlYmdsX2NyZWF0ZV9jb250ZXh0IjogX2Vtc2NyaXB0ZW5fd2ViZ2xfY3JlYXRlX2NvbnRleHQsCiAgICAgICAgIl9lbXNjcmlwdGVuX3dlYmdsX2Rlc3Ryb3lfY29udGV4dCI6IF9lbXNjcmlwdGVuX3dlYmdsX2Rlc3Ryb3lfY29udGV4dCwKICAgICAgICAiX2Vtc2NyaXB0ZW5fd2ViZ2xfZW5hYmxlX2V4dGVuc2lvbiI6IF9lbXNjcmlwdGVuX3dlYmdsX2VuYWJsZV9leHRlbnNpb24sCiAgICAgICAgIl9lbXNjcmlwdGVuX3dlYmdsX2dldF9jdXJyZW50X2NvbnRleHQiOiBfZW1zY3JpcHRlbl93ZWJnbF9nZXRfY3VycmVudF9jb250ZXh0LAogICAgICAgICJfZW1zY3JpcHRlbl93ZWJnbF9tYWtlX2NvbnRleHRfY3VycmVudCI6IF9lbXNjcmlwdGVuX3dlYmdsX21ha2VfY29udGV4dF9jdXJyZW50LAogICAgICAgICJfZXhpdCI6IF9leGl0LAogICAgICAgICJfZmxvY2siOiBfZmxvY2ssCiAgICAgICAgIl9nZXRlbnYiOiBfZ2V0ZW52LAogICAgICAgICJfZ2V0aG9zdGJ5YWRkciI6IF9nZXRob3N0YnlhZGRyLAogICAgICAgICJfZ2V0aG9zdGJ5bmFtZSI6IF9nZXRob3N0YnluYW1lLAogICAgICAgICJfZ2V0cHd1aWQiOiBfZ2V0cHd1aWQsCiAgICAgICAgIl9nZXR0aW1lb2ZkYXkiOiBfZ2V0dGltZW9mZGF5LAogICAgICAgICJfZ2xBY3RpdmVUZXh0dXJlIjogX2dsQWN0aXZlVGV4dHVyZSwKICAgICAgICAiX2dsQXR0YWNoU2hhZGVyIjogX2dsQXR0YWNoU2hhZGVyLAogICAgICAgICJfZ2xCZWdpblF1ZXJ5IjogX2dsQmVnaW5RdWVyeSwKICAgICAgICAiX2dsQmVnaW5UcmFuc2Zvcm1GZWVkYmFjayI6IF9nbEJlZ2luVHJhbnNmb3JtRmVlZGJhY2ssCiAgICAgICAgIl9nbEJpbmRBdHRyaWJMb2NhdGlvbiI6IF9nbEJpbmRBdHRyaWJMb2NhdGlvbiwKICAgICAgICAiX2dsQmluZEJ1ZmZlciI6IF9nbEJpbmRCdWZmZXIsCiAgICAgICAgIl9nbEJpbmRCdWZmZXJCYXNlIjogX2dsQmluZEJ1ZmZlckJhc2UsCiAgICAgICAgIl9nbEJpbmRGcmFtZWJ1ZmZlciI6IF9nbEJpbmRGcmFtZWJ1ZmZlciwKICAgICAgICAiX2dsQmluZFJlbmRlcmJ1ZmZlciI6IF9nbEJpbmRSZW5kZXJidWZmZXIsCiAgICAgICAgIl9nbEJpbmRTYW1wbGVyIjogX2dsQmluZFNhbXBsZXIsCiAgICAgICAgIl9nbEJpbmRUZXh0dXJlIjogX2dsQmluZFRleHR1cmUsCiAgICAgICAgIl9nbEJpbmRUcmFuc2Zvcm1GZWVkYmFjayI6IF9nbEJpbmRUcmFuc2Zvcm1GZWVkYmFjaywKICAgICAgICAiX2dsQmluZFZlcnRleEFycmF5IjogX2dsQmluZFZlcnRleEFycmF5LAogICAgICAgICJfZ2xCbGVuZEVxdWF0aW9uIjogX2dsQmxlbmRFcXVhdGlvbiwKICAgICAgICAiX2dsQmxlbmRFcXVhdGlvblNlcGFyYXRlIjogX2dsQmxlbmRFcXVhdGlvblNlcGFyYXRlLAogICAgICAgICJfZ2xCbGVuZEZ1bmNTZXBhcmF0ZSI6IF9nbEJsZW5kRnVuY1NlcGFyYXRlLAogICAgICAgICJfZ2xCbGl0RnJhbWVidWZmZXIiOiBfZ2xCbGl0RnJhbWVidWZmZXIsCiAgICAgICAgIl9nbEJ1ZmZlckRhdGEiOiBfZ2xCdWZmZXJEYXRhLAogICAgICAgICJfZ2xCdWZmZXJTdWJEYXRhIjogX2dsQnVmZmVyU3ViRGF0YSwKICAgICAgICAiX2dsQ2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyI6IF9nbENoZWNrRnJhbWVidWZmZXJTdGF0dXMsCiAgICAgICAgIl9nbENsZWFyIjogX2dsQ2xlYXIsCiAgICAgICAgIl9nbENsZWFyQ29sb3IiOiBfZ2xDbGVhckNvbG9yLAogICAgICAgICJfZ2xDbGVhckRlcHRoZiI6IF9nbENsZWFyRGVwdGhmLAogICAgICAgICJfZ2xDbGVhclN0ZW5jaWwiOiBfZ2xDbGVhclN0ZW5jaWwsCiAgICAgICAgIl9nbENsaWVudFdhaXRTeW5jIjogX2dsQ2xpZW50V2FpdFN5bmMsCiAgICAgICAgIl9nbENvbG9yTWFzayI6IF9nbENvbG9yTWFzaywKICAgICAgICAiX2dsQ29tcGlsZVNoYWRlciI6IF9nbENvbXBpbGVTaGFkZXIsCiAgICAgICAgIl9nbENvbXByZXNzZWRUZXhJbWFnZTJEIjogX2dsQ29tcHJlc3NlZFRleEltYWdlMkQsCiAgICAgICAgIl9nbENvbXByZXNzZWRUZXhTdWJJbWFnZTJEIjogX2dsQ29tcHJlc3NlZFRleFN1YkltYWdlMkQsCiAgICAgICAgIl9nbENvbXByZXNzZWRUZXhTdWJJbWFnZTNEIjogX2dsQ29tcHJlc3NlZFRleFN1YkltYWdlM0QsCiAgICAgICAgIl9nbENvcHlCdWZmZXJTdWJEYXRhIjogX2dsQ29weUJ1ZmZlclN1YkRhdGEsCiAgICAgICAgIl9nbENvcHlUZXhJbWFnZTJEIjogX2dsQ29weVRleEltYWdlMkQsCiAgICAgICAgIl9nbENvcHlUZXhTdWJJbWFnZTJEIjogX2dsQ29weVRleFN1YkltYWdlMkQsCiAgICAgICAgIl9nbENyZWF0ZVByb2dyYW0iOiBfZ2xDcmVhdGVQcm9ncmFtLAogICAgICAgICJfZ2xDcmVhdGVTaGFkZXIiOiBfZ2xDcmVhdGVTaGFkZXIsCiAgICAgICAgIl9nbEN1bGxGYWNlIjogX2dsQ3VsbEZhY2UsCiAgICAgICAgIl9nbERlbGV0ZUJ1ZmZlcnMiOiBfZ2xEZWxldGVCdWZmZXJzLAogICAgICAgICJfZ2xEZWxldGVGcmFtZWJ1ZmZlcnMiOiBfZ2xEZWxldGVGcmFtZWJ1ZmZlcnMsCiAgICAgICAgIl9nbERlbGV0ZVByb2dyYW0iOiBfZ2xEZWxldGVQcm9ncmFtLAogICAgICAgICJfZ2xEZWxldGVRdWVyaWVzIjogX2dsRGVsZXRlUXVlcmllcywKICAgICAgICAiX2dsRGVsZXRlUmVuZGVyYnVmZmVycyI6IF9nbERlbGV0ZVJlbmRlcmJ1ZmZlcnMsCiAgICAgICAgIl9nbERlbGV0ZVNhbXBsZXJzIjogX2dsRGVsZXRlU2FtcGxlcnMsCiAgICAgICAgIl9nbERlbGV0ZVNoYWRlciI6IF9nbERlbGV0ZVNoYWRlciwKICAgICAgICAiX2dsRGVsZXRlU3luYyI6IF9nbERlbGV0ZVN5bmMsCiAgICAgICAgIl9nbERlbGV0ZVRleHR1cmVzIjogX2dsRGVsZXRlVGV4dHVyZXMsCiAgICAgICAgIl9nbERlbGV0ZVRyYW5zZm9ybUZlZWRiYWNrcyI6IF9nbERlbGV0ZVRyYW5zZm9ybUZlZWRiYWNrcywKICAgICAgICAiX2dsRGVsZXRlVmVydGV4QXJyYXlzIjogX2dsRGVsZXRlVmVydGV4QXJyYXlzLAogICAgICAgICJfZ2xEZXB0aEZ1bmMiOiBfZ2xEZXB0aEZ1bmMsCiAgICAgICAgIl9nbERlcHRoTWFzayI6IF9nbERlcHRoTWFzaywKICAgICAgICAiX2dsRGV0YWNoU2hhZGVyIjogX2dsRGV0YWNoU2hhZGVyLAogICAgICAgICJfZ2xEaXNhYmxlIjogX2dsRGlzYWJsZSwKICAgICAgICAiX2dsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5IjogX2dsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5LAogICAgICAgICJfZ2xEcmF3QXJyYXlzIjogX2dsRHJhd0FycmF5cywKICAgICAgICAiX2dsRHJhd0FycmF5c0luc3RhbmNlZCI6IF9nbERyYXdBcnJheXNJbnN0YW5jZWQsCiAgICAgICAgIl9nbERyYXdCdWZmZXJzIjogX2dsRHJhd0J1ZmZlcnMsCiAgICAgICAgIl9nbERyYXdFbGVtZW50cyI6IF9nbERyYXdFbGVtZW50cywKICAgICAgICAiX2dsRHJhd0VsZW1lbnRzSW5zdGFuY2VkIjogX2dsRHJhd0VsZW1lbnRzSW5zdGFuY2VkLAogICAgICAgICJfZ2xFbmFibGUiOiBfZ2xFbmFibGUsCiAgICAgICAgIl9nbEVuYWJsZVZlcnRleEF0dHJpYkFycmF5IjogX2dsRW5hYmxlVmVydGV4QXR0cmliQXJyYXksCiAgICAgICAgIl9nbEVuZFF1ZXJ5IjogX2dsRW5kUXVlcnksCiAgICAgICAgIl9nbEVuZFRyYW5zZm9ybUZlZWRiYWNrIjogX2dsRW5kVHJhbnNmb3JtRmVlZGJhY2ssCiAgICAgICAgIl9nbEZlbmNlU3luYyI6IF9nbEZlbmNlU3luYywKICAgICAgICAiX2dsRmluaXNoIjogX2dsRmluaXNoLAogICAgICAgICJfZ2xGbHVzaCI6IF9nbEZsdXNoLAogICAgICAgICJfZ2xGbHVzaE1hcHBlZEJ1ZmZlclJhbmdlIjogX2dsRmx1c2hNYXBwZWRCdWZmZXJSYW5nZSwKICAgICAgICAiX2dsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIiOiBfZ2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlciwKICAgICAgICAiX2dsRnJhbWVidWZmZXJUZXh0dXJlMkQiOiBfZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRCwKICAgICAgICAiX2dsRnJhbWVidWZmZXJUZXh0dXJlTGF5ZXIiOiBfZ2xGcmFtZWJ1ZmZlclRleHR1cmVMYXllciwKICAgICAgICAiX2dsRnJvbnRGYWNlIjogX2dsRnJvbnRGYWNlLAogICAgICAgICJfZ2xHZW5CdWZmZXJzIjogX2dsR2VuQnVmZmVycywKICAgICAgICAiX2dsR2VuRnJhbWVidWZmZXJzIjogX2dsR2VuRnJhbWVidWZmZXJzLAogICAgICAgICJfZ2xHZW5RdWVyaWVzIjogX2dsR2VuUXVlcmllcywKICAgICAgICAiX2dsR2VuUmVuZGVyYnVmZmVycyI6IF9nbEdlblJlbmRlcmJ1ZmZlcnMsCiAgICAgICAgIl9nbEdlblNhbXBsZXJzIjogX2dsR2VuU2FtcGxlcnMsCiAgICAgICAgIl9nbEdlblRleHR1cmVzIjogX2dsR2VuVGV4dHVyZXMsCiAgICAgICAgIl9nbEdlblRyYW5zZm9ybUZlZWRiYWNrcyI6IF9nbEdlblRyYW5zZm9ybUZlZWRiYWNrcywKICAgICAgICAiX2dsR2VuVmVydGV4QXJyYXlzIjogX2dsR2VuVmVydGV4QXJyYXlzLAogICAgICAgICJfZ2xHZW5lcmF0ZU1pcG1hcCI6IF9nbEdlbmVyYXRlTWlwbWFwLAogICAgICAgICJfZ2xHZXRBY3RpdmVBdHRyaWIiOiBfZ2xHZXRBY3RpdmVBdHRyaWIsCiAgICAgICAgIl9nbEdldEFjdGl2ZVVuaWZvcm0iOiBfZ2xHZXRBY3RpdmVVbmlmb3JtLAogICAgICAgICJfZ2xHZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lIjogX2dsR2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZSwKICAgICAgICAiX2dsR2V0QWN0aXZlVW5pZm9ybUJsb2NraXYiOiBfZ2xHZXRBY3RpdmVVbmlmb3JtQmxvY2tpdiwKICAgICAgICAiX2dsR2V0QWN0aXZlVW5pZm9ybXNpdiI6IF9nbEdldEFjdGl2ZVVuaWZvcm1zaXYsCiAgICAgICAgIl9nbEdldEF0dHJpYkxvY2F0aW9uIjogX2dsR2V0QXR0cmliTG9jYXRpb24sCiAgICAgICAgIl9nbEdldEVycm9yIjogX2dsR2V0RXJyb3IsCiAgICAgICAgIl9nbEdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2IjogX2dsR2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyaXYsCiAgICAgICAgIl9nbEdldEludGVnZXJpX3YiOiBfZ2xHZXRJbnRlZ2VyaV92LAogICAgICAgICJfZ2xHZXRJbnRlZ2VydiI6IF9nbEdldEludGVnZXJ2LAogICAgICAgICJfZ2xHZXRQcm9ncmFtQmluYXJ5IjogX2dsR2V0UHJvZ3JhbUJpbmFyeSwKICAgICAgICAiX2dsR2V0UHJvZ3JhbUluZm9Mb2ciOiBfZ2xHZXRQcm9ncmFtSW5mb0xvZywKICAgICAgICAiX2dsR2V0UHJvZ3JhbWl2IjogX2dsR2V0UHJvZ3JhbWl2LAogICAgICAgICJfZ2xHZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXJpdiI6IF9nbEdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2LAogICAgICAgICJfZ2xHZXRTaGFkZXJJbmZvTG9nIjogX2dsR2V0U2hhZGVySW5mb0xvZywKICAgICAgICAiX2dsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0IjogX2dsR2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0LAogICAgICAgICJfZ2xHZXRTaGFkZXJTb3VyY2UiOiBfZ2xHZXRTaGFkZXJTb3VyY2UsCiAgICAgICAgIl9nbEdldFNoYWRlcml2IjogX2dsR2V0U2hhZGVyaXYsCiAgICAgICAgIl9nbEdldFN0cmluZyI6IF9nbEdldFN0cmluZywKICAgICAgICAiX2dsR2V0U3RyaW5naSI6IF9nbEdldFN0cmluZ2ksCiAgICAgICAgIl9nbEdldFRleFBhcmFtZXRlcml2IjogX2dsR2V0VGV4UGFyYW1ldGVyaXYsCiAgICAgICAgIl9nbEdldFVuaWZvcm1CbG9ja0luZGV4IjogX2dsR2V0VW5pZm9ybUJsb2NrSW5kZXgsCiAgICAgICAgIl9nbEdldFVuaWZvcm1JbmRpY2VzIjogX2dsR2V0VW5pZm9ybUluZGljZXMsCiAgICAgICAgIl9nbEdldFVuaWZvcm1Mb2NhdGlvbiI6IF9nbEdldFVuaWZvcm1Mb2NhdGlvbiwKICAgICAgICAiX2dsR2V0VW5pZm9ybWl2IjogX2dsR2V0VW5pZm9ybWl2LAogICAgICAgICJfZ2xHZXRWZXJ0ZXhBdHRyaWJpdiI6IF9nbEdldFZlcnRleEF0dHJpYml2LAogICAgICAgICJfZ2xJbnZhbGlkYXRlRnJhbWVidWZmZXIiOiBfZ2xJbnZhbGlkYXRlRnJhbWVidWZmZXIsCiAgICAgICAgIl9nbElzRW5hYmxlZCI6IF9nbElzRW5hYmxlZCwKICAgICAgICAiX2dsSXNWZXJ0ZXhBcnJheSI6IF9nbElzVmVydGV4QXJyYXksCiAgICAgICAgIl9nbExpbmtQcm9ncmFtIjogX2dsTGlua1Byb2dyYW0sCiAgICAgICAgIl9nbE1hcEJ1ZmZlclJhbmdlIjogX2dsTWFwQnVmZmVyUmFuZ2UsCiAgICAgICAgIl9nbFBpeGVsU3RvcmVpIjogX2dsUGl4ZWxTdG9yZWksCiAgICAgICAgIl9nbFBvbHlnb25PZmZzZXQiOiBfZ2xQb2x5Z29uT2Zmc2V0LAogICAgICAgICJfZ2xQcm9ncmFtQmluYXJ5IjogX2dsUHJvZ3JhbUJpbmFyeSwKICAgICAgICAiX2dsUHJvZ3JhbVBhcmFtZXRlcmkiOiBfZ2xQcm9ncmFtUGFyYW1ldGVyaSwKICAgICAgICAiX2dsUmVhZEJ1ZmZlciI6IF9nbFJlYWRCdWZmZXIsCiAgICAgICAgIl9nbFJlYWRQaXhlbHMiOiBfZ2xSZWFkUGl4ZWxzLAogICAgICAgICJfZ2xSZW5kZXJidWZmZXJTdG9yYWdlIjogX2dsUmVuZGVyYnVmZmVyU3RvcmFnZSwKICAgICAgICAiX2dsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlIjogX2dsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlLAogICAgICAgICJfZ2xTYW1wbGVyUGFyYW1ldGVyaSI6IF9nbFNhbXBsZXJQYXJhbWV0ZXJpLAogICAgICAgICJfZ2xTY2lzc29yIjogX2dsU2Npc3NvciwKICAgICAgICAiX2dsU2hhZGVyU291cmNlIjogX2dsU2hhZGVyU291cmNlLAogICAgICAgICJfZ2xTdGVuY2lsRnVuY1NlcGFyYXRlIjogX2dsU3RlbmNpbEZ1bmNTZXBhcmF0ZSwKICAgICAgICAiX2dsU3RlbmNpbE1hc2siOiBfZ2xTdGVuY2lsTWFzaywKICAgICAgICAiX2dsU3RlbmNpbE9wU2VwYXJhdGUiOiBfZ2xTdGVuY2lsT3BTZXBhcmF0ZSwKICAgICAgICAiX2dsVGV4SW1hZ2UyRCI6IF9nbFRleEltYWdlMkQsCiAgICAgICAgIl9nbFRleEltYWdlM0QiOiBfZ2xUZXhJbWFnZTNELAogICAgICAgICJfZ2xUZXhQYXJhbWV0ZXJmIjogX2dsVGV4UGFyYW1ldGVyZiwKICAgICAgICAiX2dsVGV4UGFyYW1ldGVyaSI6IF9nbFRleFBhcmFtZXRlcmksCiAgICAgICAgIl9nbFRleFBhcmFtZXRlcml2IjogX2dsVGV4UGFyYW1ldGVyaXYsCiAgICAgICAgIl9nbFRleFN0b3JhZ2UyRCI6IF9nbFRleFN0b3JhZ2UyRCwKICAgICAgICAiX2dsVGV4U3RvcmFnZTNEIjogX2dsVGV4U3RvcmFnZTNELAogICAgICAgICJfZ2xUZXhTdWJJbWFnZTJEIjogX2dsVGV4U3ViSW1hZ2UyRCwKICAgICAgICAiX2dsVGV4U3ViSW1hZ2UzRCI6IF9nbFRleFN1YkltYWdlM0QsCiAgICAgICAgIl9nbFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MiOiBfZ2xUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzLAogICAgICAgICJfZ2xVbmlmb3JtMWZ2IjogX2dsVW5pZm9ybTFmdiwKICAgICAgICAiX2dsVW5pZm9ybTFpIjogX2dsVW5pZm9ybTFpLAogICAgICAgICJfZ2xVbmlmb3JtMWl2IjogX2dsVW5pZm9ybTFpdiwKICAgICAgICAiX2dsVW5pZm9ybTF1aXYiOiBfZ2xVbmlmb3JtMXVpdiwKICAgICAgICAiX2dsVW5pZm9ybTJmdiI6IF9nbFVuaWZvcm0yZnYsCiAgICAgICAgIl9nbFVuaWZvcm0yaXYiOiBfZ2xVbmlmb3JtMml2LAogICAgICAgICJfZ2xVbmlmb3JtMnVpdiI6IF9nbFVuaWZvcm0ydWl2LAogICAgICAgICJfZ2xVbmlmb3JtM2Z2IjogX2dsVW5pZm9ybTNmdiwKICAgICAgICAiX2dsVW5pZm9ybTNpdiI6IF9nbFVuaWZvcm0zaXYsCiAgICAgICAgIl9nbFVuaWZvcm0zdWl2IjogX2dsVW5pZm9ybTN1aXYsCiAgICAgICAgIl9nbFVuaWZvcm00ZnYiOiBfZ2xVbmlmb3JtNGZ2LAogICAgICAgICJfZ2xVbmlmb3JtNGl2IjogX2dsVW5pZm9ybTRpdiwKICAgICAgICAiX2dsVW5pZm9ybTR1aXYiOiBfZ2xVbmlmb3JtNHVpdiwKICAgICAgICAiX2dsVW5pZm9ybUJsb2NrQmluZGluZyI6IF9nbFVuaWZvcm1CbG9ja0JpbmRpbmcsCiAgICAgICAgIl9nbFVuaWZvcm1NYXRyaXgzZnYiOiBfZ2xVbmlmb3JtTWF0cml4M2Z2LAogICAgICAgICJfZ2xVbmlmb3JtTWF0cml4NGZ2IjogX2dsVW5pZm9ybU1hdHJpeDRmdiwKICAgICAgICAiX2dsVW5tYXBCdWZmZXIiOiBfZ2xVbm1hcEJ1ZmZlciwKICAgICAgICAiX2dsVXNlUHJvZ3JhbSI6IF9nbFVzZVByb2dyYW0sCiAgICAgICAgIl9nbFZhbGlkYXRlUHJvZ3JhbSI6IF9nbFZhbGlkYXRlUHJvZ3JhbSwKICAgICAgICAiX2dsVmVydGV4QXR0cmliNGYiOiBfZ2xWZXJ0ZXhBdHRyaWI0ZiwKICAgICAgICAiX2dsVmVydGV4QXR0cmliNGZ2IjogX2dsVmVydGV4QXR0cmliNGZ2LAogICAgICAgICJfZ2xWZXJ0ZXhBdHRyaWJJUG9pbnRlciI6IF9nbFZlcnRleEF0dHJpYklQb2ludGVyLAogICAgICAgICJfZ2xWZXJ0ZXhBdHRyaWJQb2ludGVyIjogX2dsVmVydGV4QXR0cmliUG9pbnRlciwKICAgICAgICAiX2dsVmlld3BvcnQiOiBfZ2xWaWV3cG9ydCwKICAgICAgICAiX2dtdGltZSI6IF9nbXRpbWUsCiAgICAgICAgIl9nbXRpbWVfciI6IF9nbXRpbWVfciwKICAgICAgICAiX2luZXRfYWRkciI6IF9pbmV0X2FkZHIsCiAgICAgICAgIl9sbHZtX2NlaWxfZjMyIjogX2xsdm1fY2VpbF9mMzIsCiAgICAgICAgIl9sbHZtX2NlaWxfZjY0IjogX2xsdm1fY2VpbF9mNjQsCiAgICAgICAgIl9sbHZtX2N0dHpfaTMyIjogX2xsdm1fY3R0el9pMzIsCiAgICAgICAgIl9sbHZtX2VoX3R5cGVpZF9mb3IiOiBfbGx2bV9laF90eXBlaWRfZm9yLAogICAgICAgICJfbGx2bV9leHAyX2YzMiI6IF9sbHZtX2V4cDJfZjMyLAogICAgICAgICJfbGx2bV9mYWJzX2YzMiI6IF9sbHZtX2ZhYnNfZjMyLAogICAgICAgICJfbGx2bV9mYWJzX2Y2NCI6IF9sbHZtX2ZhYnNfZjY0LAogICAgICAgICJfbGx2bV9mbG9vcl9mMzIiOiBfbGx2bV9mbG9vcl9mMzIsCiAgICAgICAgIl9sbHZtX2Zsb29yX2Y2NCI6IF9sbHZtX2Zsb29yX2Y2NCwKICAgICAgICAiX2xsdm1fcG93X2YzMiI6IF9sbHZtX3Bvd19mMzIsCiAgICAgICAgIl9sbHZtX3Bvd19mNjQiOiBfbGx2bV9wb3dfZjY0LAogICAgICAgICJfbGx2bV90cmFwIjogX2xsdm1fdHJhcCwKICAgICAgICAiX2xvY2FsdGltZSI6IF9sb2NhbHRpbWUsCiAgICAgICAgIl9sb2NhbHRpbWVfciI6IF9sb2NhbHRpbWVfciwKICAgICAgICAiX2xvbmdqbXAiOiBfbG9uZ2ptcCwKICAgICAgICAiX21rdGltZSI6IF9ta3RpbWUsCiAgICAgICAgIl9wdGhyZWFkX2F0dHJfZGVzdHJveSI6IF9wdGhyZWFkX2F0dHJfZGVzdHJveSwKICAgICAgICAiX3B0aHJlYWRfYXR0cl9pbml0IjogX3B0aHJlYWRfYXR0cl9pbml0LAogICAgICAgICJfcHRocmVhZF9jb25kX2Rlc3Ryb3kiOiBfcHRocmVhZF9jb25kX2Rlc3Ryb3ksCiAgICAgICAgIl9wdGhyZWFkX2NvbmRfaW5pdCI6IF9wdGhyZWFkX2NvbmRfaW5pdCwKICAgICAgICAiX3B0aHJlYWRfY29uZF9zaWduYWwiOiBfcHRocmVhZF9jb25kX3NpZ25hbCwKICAgICAgICAiX3B0aHJlYWRfY29uZF90aW1lZHdhaXQiOiBfcHRocmVhZF9jb25kX3RpbWVkd2FpdCwKICAgICAgICAiX3B0aHJlYWRfY29uZF93YWl0IjogX3B0aHJlYWRfY29uZF93YWl0LAogICAgICAgICJfcHRocmVhZF9jcmVhdGUiOiBfcHRocmVhZF9jcmVhdGUsCiAgICAgICAgIl9wdGhyZWFkX2RldGFjaCI6IF9wdGhyZWFkX2RldGFjaCwKICAgICAgICAiX3B0aHJlYWRfZ2V0c3BlY2lmaWMiOiBfcHRocmVhZF9nZXRzcGVjaWZpYywKICAgICAgICAiX3B0aHJlYWRfa2V5X2NyZWF0ZSI6IF9wdGhyZWFkX2tleV9jcmVhdGUsCiAgICAgICAgIl9wdGhyZWFkX2tleV9kZWxldGUiOiBfcHRocmVhZF9rZXlfZGVsZXRlLAogICAgICAgICJfcHRocmVhZF9tdXRleF9kZXN0cm95IjogX3B0aHJlYWRfbXV0ZXhfZGVzdHJveSwKICAgICAgICAiX3B0aHJlYWRfbXV0ZXhfaW5pdCI6IF9wdGhyZWFkX211dGV4X2luaXQsCiAgICAgICAgIl9wdGhyZWFkX211dGV4YXR0cl9kZXN0cm95IjogX3B0aHJlYWRfbXV0ZXhhdHRyX2Rlc3Ryb3ksCiAgICAgICAgIl9wdGhyZWFkX211dGV4YXR0cl9pbml0IjogX3B0aHJlYWRfbXV0ZXhhdHRyX2luaXQsCiAgICAgICAgIl9wdGhyZWFkX211dGV4YXR0cl9zZXRwcm90b2NvbCI6IF9wdGhyZWFkX211dGV4YXR0cl9zZXRwcm90b2NvbCwKICAgICAgICAiX3B0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUiOiBfcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSwKICAgICAgICAiX3B0aHJlYWRfb25jZSI6IF9wdGhyZWFkX29uY2UsCiAgICAgICAgIl9wdGhyZWFkX3J3bG9ja19pbml0IjogX3B0aHJlYWRfcndsb2NrX2luaXQsCiAgICAgICAgIl9wdGhyZWFkX3J3bG9ja19yZGxvY2siOiBfcHRocmVhZF9yd2xvY2tfcmRsb2NrLAogICAgICAgICJfcHRocmVhZF9yd2xvY2tfdW5sb2NrIjogX3B0aHJlYWRfcndsb2NrX3VubG9jaywKICAgICAgICAiX3B0aHJlYWRfcndsb2NrX3dybG9jayI6IF9wdGhyZWFkX3J3bG9ja193cmxvY2ssCiAgICAgICAgIl9wdGhyZWFkX3NldHNwZWNpZmljIjogX3B0aHJlYWRfc2V0c3BlY2lmaWMsCiAgICAgICAgIl9wdXRlbnYiOiBfcHV0ZW52LAogICAgICAgICJfc2NoZWRfeWllbGQiOiBfc2NoZWRfeWllbGQsCiAgICAgICAgIl9zZXRlbnYiOiBfc2V0ZW52LAogICAgICAgICJfc2lnYWN0aW9uIjogX3NpZ2FjdGlvbiwKICAgICAgICAiX3NpZ2VtcHR5c2V0IjogX3NpZ2VtcHR5c2V0LAogICAgICAgICJfc3RyZnRpbWUiOiBfc3RyZnRpbWUsCiAgICAgICAgIl9zeXNjb25mIjogX3N5c2NvbmYsCiAgICAgICAgIl90aW1lIjogX3RpbWUsCiAgICAgICAgIl90enNldCI6IF90enNldCwKICAgICAgICAiX3Vuc2V0ZW52IjogX3Vuc2V0ZW52LAogICAgICAgICJfdXRpbWUiOiBfdXRpbWUsCiAgICAgICAgImVtc2NyaXB0ZW5XZWJHTENvbXB1dGVJbWFnZVNpemUiOiBlbXNjcmlwdGVuV2ViR0xDb21wdXRlSW1hZ2VTaXplLAogICAgICAgICJlbXNjcmlwdGVuV2ViR0xHZXQiOiBlbXNjcmlwdGVuV2ViR0xHZXQsCiAgICAgICAgImVtc2NyaXB0ZW5XZWJHTEdldEJ1ZmZlckJpbmRpbmciOiBlbXNjcmlwdGVuV2ViR0xHZXRCdWZmZXJCaW5kaW5nLAogICAgICAgICJlbXNjcmlwdGVuV2ViR0xHZXRIZWFwRm9yVHlwZSI6IGVtc2NyaXB0ZW5XZWJHTEdldEhlYXBGb3JUeXBlLAogICAgICAgICJlbXNjcmlwdGVuV2ViR0xHZXRJbmRleGVkIjogZW1zY3JpcHRlbldlYkdMR2V0SW5kZXhlZCwKICAgICAgICAiZW1zY3JpcHRlbldlYkdMR2V0U2hpZnRGb3JUeXBlIjogZW1zY3JpcHRlbldlYkdMR2V0U2hpZnRGb3JUeXBlLAogICAgICAgICJlbXNjcmlwdGVuV2ViR0xHZXRUZXhQaXhlbERhdGEiOiBlbXNjcmlwdGVuV2ViR0xHZXRUZXhQaXhlbERhdGEsCiAgICAgICAgImVtc2NyaXB0ZW5XZWJHTEdldFVuaWZvcm0iOiBlbXNjcmlwdGVuV2ViR0xHZXRVbmlmb3JtLAogICAgICAgICJlbXNjcmlwdGVuV2ViR0xHZXRWZXJ0ZXhBdHRyaWIiOiBlbXNjcmlwdGVuV2ViR0xHZXRWZXJ0ZXhBdHRyaWIsCiAgICAgICAgImVtc2NyaXB0ZW5XZWJHTFZhbGlkYXRlTWFwQnVmZmVyVGFyZ2V0IjogZW1zY3JpcHRlbldlYkdMVmFsaWRhdGVNYXBCdWZmZXJUYXJnZXQsCiAgICAgICAgIkRZTkFNSUNUT1BfUFRSIjogRFlOQU1JQ1RPUF9QVFIsCiAgICAgICAgInRlbXBEb3VibGVQdHIiOiB0ZW1wRG91YmxlUHRyLAogICAgICAgICJBQk9SVCI6IEFCT1JULAogICAgICAgICJTVEFDS1RPUCI6IFNUQUNLVE9QLAogICAgICAgICJTVEFDS19NQVgiOiBTVEFDS19NQVgsCiAgICAgICAgImN0dHpfaTgiOiBjdHR6X2k4LAogICAgICAgICJfZW52aXJvbiI6IF9lbnZpcm9uCiAgICB9OwogICAgdmFyIGFzbSA9IE1vZHVsZVsiYXNtIl0oTW9kdWxlLmFzbUdsb2JhbEFyZywgTW9kdWxlLmFzbUxpYnJhcnlBcmcsIGJ1ZmZlcik7CiAgICBNb2R1bGVbImFzbSJdID0gYXNtOwogICAgdmFyIF9TZW5kTWVzc2FnZSA9IE1vZHVsZVsiX1NlbmRNZXNzYWdlIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9TZW5kTWVzc2FnZSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9TZW5kTWVzc2FnZUZsb2F0ID0gTW9kdWxlWyJfU2VuZE1lc3NhZ2VGbG9hdCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfU2VuZE1lc3NhZ2VGbG9hdCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9TZW5kTWVzc2FnZVN0cmluZyA9IE1vZHVsZVsiX1NlbmRNZXNzYWdlU3RyaW5nIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9TZW5kTWVzc2FnZVN0cmluZyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9TZXRGdWxsc2NyZWVuID0gTW9kdWxlWyJfU2V0RnVsbHNjcmVlbiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfU2V0RnVsbHNjcmVlbiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9BSVNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfQUlTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfQUlTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9BUlNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfQVJTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfQVJTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9BY2Nlc3NpYmlsaXR5U2NyaXB0aW5nQ2xhc3Nlc19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9BY2Nlc3NpYmlsaXR5U2NyaXB0aW5nQ2xhc3Nlc19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0FjY2Vzc2liaWxpdHlTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9BbmltYXRpb25DbGlwX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0FuaW1hdGlvbkNsaXBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9BbmltYXRpb25DbGlwX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9BbmltYXRpb25TY3JpcHRpbmdDbGFzc2VzX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0FuaW1hdGlvblNjcmlwdGluZ0NsYXNzZXNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9BbmltYXRpb25TY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9BcHBEb21haW5fY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfQXBwRG9tYWluX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfQXBwRG9tYWluX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9BcnJheU1ldGFkYXRhX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0FycmF5TWV0YWRhdGFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9BcnJheU1ldGFkYXRhX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Bc3NlbWJseV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Bc3NlbWJseV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0Fzc2VtYmx5X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Bc3NlbWJseV9jcHBfMTcwMzQwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfQXNzZW1ibHlfY3BwXzE3MDM0MCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfQXNzZW1ibHlfY3BwXzE3MDM0MCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Bc3NldEJ1bmRsZUZpbGVTeXN0ZW1fY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfQXNzZXRCdW5kbGVGaWxlU3lzdGVtX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfQXNzZXRCdW5kbGVGaWxlU3lzdGVtX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Bc3NldEJ1bmRsZVNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfQXNzZXRCdW5kbGVTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfQXNzZXRCdW5kbGVTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9BdWRpb1NjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfQXVkaW9TY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfQXVkaW9TY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9BdmF0YXJfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfQXZhdGFyX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfQXZhdGFyX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Cb2VobUdDX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0JvZWhtR0NfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Cb2VobUdDX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9DbGFzc19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9DbGFzc19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0NsYXNzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9DbG90aFNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfQ2xvdGhTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfQ2xvdGhTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Db25zb2xlX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0NvbnNvbGVfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Db25zb2xlX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Db25zdHJhaW50TWFuYWdlcl9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Db25zdHJhaW50TWFuYWdlcl9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0NvbnN0cmFpbnRNYW5hZ2VyX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9EaXJlY3RvclNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfRGlyZWN0b3JTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfRGlyZWN0b3JTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9FbnZpcm9ubWVudF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9FbnZpcm9ubWVudF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0Vudmlyb25tZW50X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9FcnJvcl9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9FcnJvcl9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0Vycm9yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9FeHRlcm5hbF9Qcm9waGVjeVNES19CbGl0T3BlcmF0aW9uc18xX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0V4dGVybmFsX1Byb3BoZWN5U0RLX0JsaXRPcGVyYXRpb25zXzFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9FeHRlcm5hbF9Qcm9waGVjeVNES19CbGl0T3BlcmF0aW9uc18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9FeHRlcm5hbF9Zb2dhX1lvZ2FfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9FeHRlcm5hbF9Zb2dhX1lvZ2FfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0V4dGVybmFsX1lvZ2FfWW9nYV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9GaWxlX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0ZpbGVfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9GaWxlX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9HQ0hhbmRsZV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9HQ0hhbmRsZV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0dDSGFuZGxlX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9HYXJiYWdlQ29sbGVjdG9yX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0dhcmJhZ2VDb2xsZWN0b3JfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9HYXJiYWdlQ29sbGVjdG9yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9HZW5lcmljTWV0YWRhdGFfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfR2VuZXJpY01ldGFkYXRhX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfR2VuZXJpY01ldGFkYXRhX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9HZW5lcmljTWV0aG9kX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0dlbmVyaWNNZXRob2RfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9HZW5lcmljTWV0aG9kX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9HcmlkU2NyaXB0aW5nQ2xhc3Nlc19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9HcmlkU2NyaXB0aW5nQ2xhc3Nlc19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0dyaWRTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9JTUdVSVNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfSU1HVUlTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfSU1HVUlTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9JbDJDcHBDb2RlUmVnaXN0cmF0aW9uX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0lsMkNwcENvZGVSZWdpc3RyYXRpb25fY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9JbDJDcHBDb2RlUmVnaXN0cmF0aW9uX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9JbWFnZV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9JbWFnZV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0ltYWdlX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9JbnB1dFNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfSW5wdXRTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfSW5wdXRTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9JbnRlcmxvY2tlZF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9JbnRlcmxvY2tlZF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX0ludGVybG9ja2VkX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9MaWJyYXJ5TG9hZGVyX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX0xpYnJhcnlMb2FkZXJfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9MaWJyYXJ5TG9hZGVyX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Mb2dBc3NlcnRfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTG9nQXNzZXJ0X2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTG9nQXNzZXJ0X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9NZW1vcnlNYXBJbXBsX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX01lbW9yeU1hcEltcGxfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9NZW1vcnlNYXBJbXBsX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9NZW1vcnlNYXBwZWRGaWxlX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX01lbW9yeU1hcHBlZEZpbGVfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9NZW1vcnlNYXBwZWRGaWxlX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9NZXRhZGF0YUNhY2hlX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX01ldGFkYXRhQ2FjaGVfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9NZXRhZGF0YUNhY2hlX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0Fzc2V0QnVuZGxlX1B1YmxpY18wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfQXNzZXRCdW5kbGVfUHVibGljXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0Fzc2V0QnVuZGxlX1B1YmxpY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0F1ZGlvX1B1YmxpY18wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfQXVkaW9fUHVibGljXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0F1ZGlvX1B1YmxpY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0F1ZGlvX1B1YmxpY18xX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfQXVkaW9fUHVibGljXzFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0F1ZGlvX1B1YmxpY18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0F1ZGlvX1B1YmxpY18zX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfQXVkaW9fUHVibGljXzNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0F1ZGlvX1B1YmxpY18zX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0dyaWRfUHVibGljXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19HcmlkX1B1YmxpY18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19HcmlkX1B1YmxpY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0lNR1VJXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19JTUdVSV8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19JTUdVSV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX0lNR1VJXzFfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19JTUdVSV8xX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19JTUdVSV8xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1BoeXNpY3MyRF9QdWJsaWNfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1BoeXNpY3MyRF9QdWJsaWNfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfUGh5c2ljczJEX1B1YmxpY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1BoeXNpY3MyRF9QdWJsaWNfMV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1BoeXNpY3MyRF9QdWJsaWNfMV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfUGh5c2ljczJEX1B1YmxpY18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1Byb2ZpbGVyX1B1YmxpY18xX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfUHJvZmlsZXJfUHVibGljXzFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1Byb2ZpbGVyX1B1YmxpY18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1Byb2ZpbGVyX1J1bnRpbWVfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1Byb2ZpbGVyX1J1bnRpbWVfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfUHJvZmlsZXJfUnVudGltZV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RlcnJhaW5fUHVibGljXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXJyYWluX1B1YmxpY18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXJyYWluX1B1YmxpY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RlcnJhaW5fUHVibGljXzFfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXJyYWluX1B1YmxpY18xX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXJyYWluX1B1YmxpY18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RlcnJhaW5fUHVibGljXzJfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXJyYWluX1B1YmxpY18yX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXJyYWluX1B1YmxpY18yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RlcnJhaW5fVlJfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RlcnJhaW5fVlJfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfVGVycmFpbl9WUl8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RleHRDb3JlX05hdGl2ZV9Gb250RW5naW5lXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXh0Q29yZV9OYXRpdmVfRm9udEVuZ2luZV8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXh0Q29yZV9OYXRpdmVfRm9udEVuZ2luZV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RleHRSZW5kZXJpbmdfUHVibGljXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXh0UmVuZGVyaW5nX1B1YmxpY18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UZXh0UmVuZGVyaW5nX1B1YmxpY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RpbGVtYXBfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RpbGVtYXBfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfVGlsZW1hcF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1RpbGVtYXBfUHVibGljXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UaWxlbWFwX1B1YmxpY18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19UaWxlbWFwX1B1YmxpY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1VuaXR5QW5hbHl0aWNzX0Rpc3BhdGNoZXJfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1VuaXR5QW5hbHl0aWNzX0Rpc3BhdGNoZXJfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfVW5pdHlBbmFseXRpY3NfRGlzcGF0Y2hlcl8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1VuaXR5V2ViUmVxdWVzdF9QdWJsaWNfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1VuaXR5V2ViUmVxdWVzdF9QdWJsaWNfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfVW5pdHlXZWJSZXF1ZXN0X1B1YmxpY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1ZGWF9QdWJsaWNfMV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1ZGWF9QdWJsaWNfMV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfVkZYX1B1YmxpY18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1ZGWF9QdWJsaWNfMl9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1ZGWF9QdWJsaWNfMl9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX01vZHVsZXNfVkZYX1B1YmxpY18yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Nb2R1bGVzX1hSX1N1YnN5c3RlbXNfSW5wdXRfUHVibGljXzFfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19YUl9TdWJzeXN0ZW1zX0lucHV0X1B1YmxpY18xX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfTW9kdWxlc19YUl9TdWJzeXN0ZW1zX0lucHV0X1B1YmxpY18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9OYXRpdmVEZWxlZ2F0ZU1ldGhvZENhY2hlX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX05hdGl2ZURlbGVnYXRlTWV0aG9kQ2FjaGVfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9OYXRpdmVEZWxlZ2F0ZU1ldGhvZENhY2hlX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9QYXJ0aWNsZVN5c3RlbVJlbmRlcmVyX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1BhcnRpY2xlU3lzdGVtUmVuZGVyZXJfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9QYXJ0aWNsZVN5c3RlbVJlbmRlcmVyX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9QYXJ0aWNsZVN5c3RlbVNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUGFydGljbGVTeXN0ZW1TY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUGFydGljbGVTeXN0ZW1TY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9QYXRoX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1BhdGhfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9QYXRoX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9QaHlzWF9Tb3VyY2VfTG93TGV2ZWxDbG90aF9zcmNfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9QaHlzWF9Tb3VyY2VfTG93TGV2ZWxDbG90aF9zcmNfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1BoeXNYX1NvdXJjZV9Mb3dMZXZlbENsb3RoX3NyY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9QaHlzaWNzMkRTY3JpcHRpbmdDbGFzc2VzX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1BoeXNpY3MyRFNjcmlwdGluZ0NsYXNzZXNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9QaHlzaWNzMkRTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9QaHlzaWNzU2NyaXB0aW5nQ2xhc3Nlc19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9QaHlzaWNzU2NyaXB0aW5nQ2xhc3Nlc19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1BoeXNpY3NTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9QbGF0Zm9ybURlcGVuZGVudF9XZWJHTF9Tb3VyY2VfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9QbGF0Zm9ybURlcGVuZGVudF9XZWJHTF9Tb3VyY2VfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1BsYXRmb3JtRGVwZW5kZW50X1dlYkdMX1NvdXJjZV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SQ1dfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUkNXX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUkNXX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SZWZsZWN0aW9uX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1JlZmxlY3Rpb25fY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SZWZsZWN0aW9uX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lXzJEX1NvcnRpbmdfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lXzJEX1NvcnRpbmdfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfMkRfU29ydGluZ18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lXzJEX1Nwcml0ZUF0bGFzXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV8yRF9TcHJpdGVBdGxhc18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV8yRF9TcHJpdGVBdGxhc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FsbG9jYXRvcl8xX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQWxsb2NhdG9yXzFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FsbG9jYXRvcl8xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FuaW1hdGlvbl8xX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQW5pbWF0aW9uXzFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FuaW1hdGlvbl8xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FuaW1hdGlvbl8zX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQW5pbWF0aW9uXzNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FuaW1hdGlvbl8zX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FuaW1hdGlvbl82X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQW5pbWF0aW9uXzZfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FuaW1hdGlvbl82X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0FwcGxpY2F0aW9uXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9BcHBsaWNhdGlvbl8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9BcHBsaWNhdGlvbl8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0Jhc2VDbGFzc2VzXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CYXNlQ2xhc3Nlc18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CYXNlQ2xhc3Nlc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0Jhc2VDbGFzc2VzXzFfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CYXNlQ2xhc3Nlc18xX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CYXNlQ2xhc3Nlc18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0Jhc2VDbGFzc2VzXzJfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CYXNlQ2xhc3Nlc18yX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CYXNlQ2xhc3Nlc18yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0Jhc2VDbGFzc2VzXzNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CYXNlQ2xhc3Nlc18zX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CYXNlQ2xhc3Nlc18zX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0J1cnN0XzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CdXJzdF8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9CdXJzdF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV8yX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhXzJfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV8yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV8zX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhXzNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV8zX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV80X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhXzRfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV80X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV81X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhXzVfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV81X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV82X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhXzZfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV82X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV83X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhXzdfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV83X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV9DdWxsaW5nXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9DYW1lcmFfQ3VsbGluZ18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9DYW1lcmFfQ3VsbGluZ18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV9SZW5kZXJMYXllcnNfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV9SZW5kZXJMYXllcnNfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhX1JlbmRlckxheWVyc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV9SZW5kZXJMb29wc18wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhX1JlbmRlckxvb3BzXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV9SZW5kZXJMb29wc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV9SZW5kZXJMb29wc18yX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ2FtZXJhX1JlbmRlckxvb3BzXzJfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NhbWVyYV9SZW5kZXJMb29wc18yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0Nsb3RoXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9DbG90aF8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9DbG90aF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NvbnRhaW5lcnNfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NvbnRhaW5lcnNfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfQ29udGFpbmVyc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0NvcmVfQ2FsbGJhY2tzXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9Db3JlX0NhbGxiYWNrc18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9Db3JlX0NhbGxiYWNrc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0RpcmVjdG9yX0NvcmVfMV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0RpcmVjdG9yX0NvcmVfMV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfRGlyZWN0b3JfQ29yZV8xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0R5bmFtaWNzXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9EeW5hbWljc18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9EeW5hbWljc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0R5bmFtaWNzXzFfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9EeW5hbWljc18xX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9EeW5hbWljc18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0V4cG9ydF8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfRXhwb3J0XzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0V4cG9ydF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0ZpbGVfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0ZpbGVfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfRmlsZV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dlb21ldHJ5XzJfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HZW9tZXRyeV8yX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HZW9tZXRyeV8yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dmeERldmljZV8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR2Z4RGV2aWNlXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dmeERldmljZV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dmeERldmljZV8xX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR2Z4RGV2aWNlXzFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dmeERldmljZV8xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dmeERldmljZV8yX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR2Z4RGV2aWNlXzJfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dmeERldmljZV8yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dmeERldmljZV8zX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR2Z4RGV2aWNlXzNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dmeERldmljZV8zX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzEwX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfMTBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzEwX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzExX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfMTFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzExX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzFfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc18xX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzVfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc181X2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc181X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzZfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc182X2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc182X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzdfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc183X2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc183X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzhfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc184X2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc184X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzXzlfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc185X2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc185X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX0JpbGxib2FyZF8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfQmlsbGJvYXJkXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX0JpbGxib2FyZF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX0xPRF8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfTE9EXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX0xPRF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX01lc2hfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX01lc2hfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfTWVzaF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX01lc2hfMl9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX01lc2hfMl9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfTWVzaF8yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX01lc2hfNF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX01lc2hfNF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfTWVzaF80X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX01lc2hfNV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX01lc2hfNV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfR3JhcGhpY3NfTWVzaF81X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0dyYXBoaWNzX1NjcmlwdGFibGVSZW5kZXJMb29wXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc19TY3JpcHRhYmxlUmVuZGVyTG9vcF8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9HcmFwaGljc19TY3JpcHRhYmxlUmVuZGVyTG9vcF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0lucHV0XzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9JbnB1dF8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9JbnB1dF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0ludGVyZmFjZXNfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0ludGVyZmFjZXNfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfSW50ZXJmYWNlc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0ludGVyZmFjZXNfMV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0ludGVyZmFjZXNfMV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfSW50ZXJmYWNlc18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0ludGVyZmFjZXNfMl9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0ludGVyZmFjZXNfMl9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfSW50ZXJmYWNlc18yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0pvYnNfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0pvYnNfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfSm9ic18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0pvYnNfU2NyaXB0QmluZGluZ3NfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX0pvYnNfU2NyaXB0QmluZGluZ3NfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfSm9ic19TY3JpcHRCaW5kaW5nc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01hdGhfMl9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01hdGhfMl9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfTWF0aF8yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01hdGhfUmFuZG9tXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9NYXRoX1JhbmRvbV8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9NYXRoX1JhbmRvbV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01pc2NfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01pc2NfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfTWlzY18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01pc2NfMl9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01pc2NfMl9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfTWlzY18yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01pc2NfNF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01pc2NfNF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfTWlzY180X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01pc2NfNV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01pc2NfNV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfTWlzY181X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01vZHVsZXNfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01vZHVsZXNfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfTW9kdWxlc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01vbm9fU2VyaWFsaXphdGlvbkJhY2tlbmRfRGlyZWN0TWVtb3J5QWNjZXNzXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9Nb25vX1NlcmlhbGl6YXRpb25CYWNrZW5kX0RpcmVjdE1lbW9yeUFjY2Vzc18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9Nb25vX1NlcmlhbGl6YXRpb25CYWNrZW5kX0RpcmVjdE1lbW9yeUFjY2Vzc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX01vbm9fU2VyaWFsaXphdGlvbkJhY2tlbmRfRGlyZWN0TWVtb3J5QWNjZXNzXzFfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9Nb25vX1NlcmlhbGl6YXRpb25CYWNrZW5kX0RpcmVjdE1lbW9yeUFjY2Vzc18xX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9Nb25vX1NlcmlhbGl6YXRpb25CYWNrZW5kX0RpcmVjdE1lbW9yeUFjY2Vzc18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1BhcnRpY2xlU3lzdGVtX01vZHVsZXNfM19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1BhcnRpY2xlU3lzdGVtX01vZHVsZXNfM19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfUGFydGljbGVTeXN0ZW1fTW9kdWxlc18zX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1BsdWdpbkludGVyZmFjZV8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfUGx1Z2luSW50ZXJmYWNlXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1BsdWdpbkludGVyZmFjZV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1ByZWxvYWRNYW5hZ2VyXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9QcmVsb2FkTWFuYWdlcl8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9QcmVsb2FkTWFuYWdlcl8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NjZW5lTWFuYWdlcl8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2NlbmVNYW5hZ2VyXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NjZW5lTWFuYWdlcl8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NjcmlwdGluZ0JhY2tlbmRfSWwyQ3BwXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9TY3JpcHRpbmdCYWNrZW5kX0lsMkNwcF8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9TY3JpcHRpbmdCYWNrZW5kX0lsMkNwcF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NjcmlwdGluZ18wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2NyaXB0aW5nXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NjcmlwdGluZ18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NjcmlwdGluZ18zX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2NyaXB0aW5nXzNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NjcmlwdGluZ18zX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NlcmlhbGl6ZV9UcmFuc2ZlckZ1bmN0aW9uc18wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2VyaWFsaXplX1RyYW5zZmVyRnVuY3Rpb25zXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NlcmlhbGl6ZV9UcmFuc2ZlckZ1bmN0aW9uc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NlcmlhbGl6ZV9UcmFuc2ZlckZ1bmN0aW9uc18xX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2VyaWFsaXplX1RyYW5zZmVyRnVuY3Rpb25zXzFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NlcmlhbGl6ZV9UcmFuc2ZlckZ1bmN0aW9uc18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NoYWRlcnNfMF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NoYWRlcnNfMF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2hhZGVyc18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NoYWRlcnNfMV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NoYWRlcnNfMV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2hhZGVyc18xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NoYWRlcnNfU2hhZGVySW1wbF8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2hhZGVyc19TaGFkZXJJbXBsXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NoYWRlcnNfU2hhZGVySW1wbF8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NoYWRlcnNfU2hhZGVySW1wbF8xX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfU2hhZGVyc19TaGFkZXJJbXBsXzFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1NoYWRlcnNfU2hhZGVySW1wbF8xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1RyYW5zZm9ybV8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVHJhbnNmb3JtXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1RyYW5zZm9ybV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1RyYW5zZm9ybV8xX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVHJhbnNmb3JtXzFfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1RyYW5zZm9ybV8xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1VJXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VSV8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VSV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1VJXzFfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VSV8xX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VSV8xX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1VJXzJfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VSV8yX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9VSV8yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc18yX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVXRpbGl0aWVzXzJfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc18yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc181X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVXRpbGl0aWVzXzVfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc181X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc182X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVXRpbGl0aWVzXzZfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc182X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc183X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVXRpbGl0aWVzXzdfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc183X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc185X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVXRpbGl0aWVzXzlfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1V0aWxpdGllc185X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1ZSXzJfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9WUl8yX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9WUl8yX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1ZSX1BsdWdpbkludGVyZmFjZV8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfVlJfUGx1Z2luSW50ZXJmYWNlXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1ZSX1BsdWdpbkludGVyZmFjZV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1ZpZGVvXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9WaWRlb18wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9WaWRlb18wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX1ZpcnR1YWxGaWxlU3lzdGVtXzBfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9WaXJ0dWFsRmlsZVN5c3RlbV8wX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfUnVudGltZV9WaXJ0dWFsRmlsZVN5c3RlbV8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9SdW50aW1lX2NwcF8xNzA5NjMgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9SdW50aW1lX2NwcF8xNzA5NjMiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1J1bnRpbWVfY3BwXzE3MDk2MyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9TaGFkZXJfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfU2hhZGVyX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfU2hhZGVyX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9TaGFkb3dzX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1NoYWRvd3NfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9TaGFkb3dzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9TaGFwZU1vZHVsZV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9TaGFwZU1vZHVsZV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1NoYXBlTW9kdWxlX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Tb2NrZXRfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfU29ja2V0X2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfU29ja2V0X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9TcGFyc2VUZXh0dXJlR0xFU19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9TcGFyc2VUZXh0dXJlR0xFU19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1NwYXJzZVRleHR1cmVHTEVTX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9TcHJpdGVSZW5kZXJlckpvYnNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfU3ByaXRlUmVuZGVyZXJKb2JzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfU3ByaXRlUmVuZGVyZXJKb2JzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9TdGFja1RyYWNlX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1N0YWNrVHJhY2VfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9TdGFja1RyYWNlX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9TdHJpbmdfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfU3RyaW5nX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfU3RyaW5nX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Td0NvbGxpc2lvbl9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Td0NvbGxpc2lvbl9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1N3Q29sbGlzaW9uX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Td0ZhY3RvcnlfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfU3dGYWN0b3J5X2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfU3dGYWN0b3J5X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Td0ludGVyQ29sbGlzaW9uX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1N3SW50ZXJDb2xsaXNpb25fY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Td0ludGVyQ29sbGlzaW9uX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Td1NlbGZDb2xsaXNpb25fY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfU3dTZWxmQ29sbGlzaW9uX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfU3dTZWxmQ29sbGlzaW9uX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Td1NvbHZlcktlcm5lbF9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9Td1NvbHZlcktlcm5lbF9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1N3U29sdmVyS2VybmVsX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9UZXJyYWluU2NyaXB0aW5nQ2xhc3Nlc19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9UZXJyYWluU2NyaXB0aW5nQ2xhc3Nlc19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1RlcnJhaW5TY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9UZXh0Q29yZVNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfVGV4dENvcmVTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfVGV4dENvcmVTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9UZXh0UmVuZGVyaW5nU2NyaXB0aW5nQ2xhc3Nlc19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9UZXh0UmVuZGVyaW5nU2NyaXB0aW5nQ2xhc3Nlc19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1RleHRSZW5kZXJpbmdTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9UaHJlYWRJbXBsX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1RocmVhZEltcGxfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9UaHJlYWRJbXBsX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9UaHJlYWRfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfVGhyZWFkX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfVGhyZWFkX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9UaHJlYWRfY3BwXzE2OTU5MyA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1RocmVhZF9jcHBfMTY5NTkzIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9UaHJlYWRfY3BwXzE2OTU5MyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9UaWxlbWFwU2NyaXB0aW5nQ2xhc3Nlc19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9UaWxlbWFwU2NyaXB0aW5nQ2xhc3Nlc19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1RpbGVtYXBTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9UcmFuc2Zvcm1GZWVkYmFja1NraW5uaW5nX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1RyYW5zZm9ybUZlZWRiYWNrU2tpbm5pbmdfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9UcmFuc2Zvcm1GZWVkYmFja1NraW5uaW5nX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9UcmFuc2Zvcm1fY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfVHJhbnNmb3JtX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfVHJhbnNmb3JtX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9VSUVsZW1lbnRzU2NyaXB0aW5nQ2xhc3Nlc19jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV9VSUVsZW1lbnRzU2NyaXB0aW5nQ2xhc3Nlc19jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX1VJRWxlbWVudHNTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9VSVNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfVUlTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfVUlTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Vbml0eUFkc1NldHRpbmdzX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1VuaXR5QWRzU2V0dGluZ3NfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Vbml0eUFkc1NldHRpbmdzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Vbml0eUFuYWx5dGljc1NjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfVW5pdHlBbmFseXRpY3NTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfVW5pdHlBbmFseXRpY3NTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9Vbml0eVdlYlJlcXVlc3RTY3JpcHRpbmdDbGFzc2VzX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1VuaXR5V2ViUmVxdWVzdFNjcmlwdGluZ0NsYXNzZXNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9Vbml0eVdlYlJlcXVlc3RTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9VbnNhZmVVdGlsaXR5X2JpbmRpbmdzX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1Vuc2FmZVV0aWxpdHlfYmluZGluZ3NfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9VbnNhZmVVdGlsaXR5X2JpbmRpbmdzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9WRlhTY3JpcHRpbmdDbGFzc2VzX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1ZGWFNjcmlwdGluZ0NsYXNzZXNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9WRlhTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9WUlNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfVlJTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfVlJTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9WaWRlb1NjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfVmlkZW9TY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfVmlkZW9TY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9XaW5kX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX1dpbmRfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9XaW5kX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9YUlNjcmlwdGluZ0NsYXNzZXNfY3BwID0gTW9kdWxlWyJfX0dMT0JBTF9fc3ViX0lfWFJTY3JpcHRpbmdDbGFzc2VzX2NwcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX0dMT0JBTF9fc3ViX0lfWFJTY3JpcHRpbmdDbGFzc2VzX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9hcnRpZmFjdHNfV2ViR0xfY29kZWdlbmVyYXRvcl8wX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX2FydGlmYWN0c19XZWJHTF9jb2RlZ2VuZXJhdG9yXzBfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9hcnRpZmFjdHNfV2ViR0xfY29kZWdlbmVyYXRvcl8wX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV9hcnRpZmFjdHNfV2ViR0xfbW9kdWxlc19Db3JlX1dlYkdMX2FzbWpzX25vbmRldl9pX3Jfbm90aHJlYWRzXzE1X2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX2FydGlmYWN0c19XZWJHTF9tb2R1bGVzX0NvcmVfV2ViR0xfYXNtanNfbm9uZGV2X2lfcl9ub3RocmVhZHNfMTVfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV9hcnRpZmFjdHNfV2ViR0xfbW9kdWxlc19Db3JlX1dlYkdMX2FzbWpzX25vbmRldl9pX3Jfbm90aHJlYWRzXzE1X2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV90aHJlYWRwb29sX21zX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX3RocmVhZHBvb2xfbXNfY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV90aHJlYWRwb29sX21zX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV90aHJlYWRwb29sX21zX2lvX2NwcCA9IE1vZHVsZVsiX19HTE9CQUxfX3N1Yl9JX3RocmVhZHBvb2xfbXNfaW9fY3BwIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fR0xPQkFMX19zdWJfSV90aHJlYWRwb29sX21zX2lvX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fR0xPQkFMX19zdWJfSV91bWJyYV9jcHAgPSBNb2R1bGVbIl9fR0xPQkFMX19zdWJfSV91bWJyYV9jcHAiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19HTE9CQUxfX3N1Yl9JX3VtYnJhX2NwcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4YV9jYW5fY2F0Y2ggPSBNb2R1bGVbIl9fX2N4YV9jYW5fY2F0Y2giXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19fY3hhX2Nhbl9jYXRjaCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4YV9pc19wb2ludGVyX3R5cGUgPSBNb2R1bGVbIl9fX2N4YV9pc19wb2ludGVyX3R5cGUiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19fY3hhX2lzX3BvaW50ZXJfdHlwZSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4eF9nbG9iYWxfdmFyX2luaXQgPSBNb2R1bGVbIl9fX2N4eF9nbG9iYWxfdmFyX2luaXQiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19fY3h4X2dsb2JhbF92YXJfaW5pdCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMTA2ID0gTW9kdWxlWyJfX19jeHhfZ2xvYmFsX3Zhcl9pbml0XzEwNiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX19jeHhfZ2xvYmFsX3Zhcl9pbml0XzEwNiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMTI2ID0gTW9kdWxlWyJfX19jeHhfZ2xvYmFsX3Zhcl9pbml0XzEyNiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX19jeHhfZ2xvYmFsX3Zhcl9pbml0XzEyNiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMTYgPSBNb2R1bGVbIl9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMTYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19fY3h4X2dsb2JhbF92YXJfaW5pdF8xNiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMTkgPSBNb2R1bGVbIl9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMTkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19fY3h4X2dsb2JhbF92YXJfaW5pdF8xOSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMiA9IE1vZHVsZVsiX19fY3h4X2dsb2JhbF92YXJfaW5pdF8yIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMjIgPSBNb2R1bGVbIl9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMjIiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19fY3h4X2dsb2JhbF92YXJfaW5pdF8yMiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMjkxNSA9IE1vZHVsZVsiX19fY3h4X2dsb2JhbF92YXJfaW5pdF8yOTE1Il0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9fX2N4eF9nbG9iYWxfdmFyX2luaXRfMjkxNSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2N4eF9nbG9iYWxfdmFyX2luaXRfNDEgPSBNb2R1bGVbIl9fX2N4eF9nbG9iYWxfdmFyX2luaXRfNDEiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX19fY3h4X2dsb2JhbF92YXJfaW5pdF80MSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9fX2Vycm5vX2xvY2F0aW9uID0gTW9kdWxlWyJfX19lcnJub19sb2NhdGlvbiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfX19lcnJub19sb2NhdGlvbiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9lbXNjcmlwdGVuX3JlcGxhY2VfbWVtb3J5ID0gTW9kdWxlWyJfZW1zY3JpcHRlbl9yZXBsYWNlX21lbW9yeSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfZW1zY3JpcHRlbl9yZXBsYWNlX21lbW9yeSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9mcmVlID0gTW9kdWxlWyJfZnJlZSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfZnJlZSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9odG9ubCA9IE1vZHVsZVsiX2h0b25sIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9odG9ubCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9odG9ucyA9IE1vZHVsZVsiX2h0b25zIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9odG9ucyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9sbHZtX2Jzd2FwX2kxNiA9IE1vZHVsZVsiX2xsdm1fYnN3YXBfaTE2Il0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9sbHZtX2Jzd2FwX2kxNiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9sbHZtX2Jzd2FwX2kzMiA9IE1vZHVsZVsiX2xsdm1fYnN3YXBfaTMyIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9sbHZtX2Jzd2FwX2kzMiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9sbHZtX2N0bHpfaTY0ID0gTW9kdWxlWyJfbGx2bV9jdGx6X2k2NCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfbGx2bV9jdGx6X2k2NCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9tYWluID0gTW9kdWxlWyJfbWFpbiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfbWFpbiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9tYWxsb2MgPSBNb2R1bGVbIl9tYWxsb2MiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX21hbGxvYyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9tZW1hbGlnbiA9IE1vZHVsZVsiX21lbWFsaWduIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9tZW1hbGlnbiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9tZW1jcHkgPSBNb2R1bGVbIl9tZW1jcHkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX21lbWNweSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9tZW1tb3ZlID0gTW9kdWxlWyJfbWVtbW92ZSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfbWVtbW92ZSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9tZW1zZXQgPSBNb2R1bGVbIl9tZW1zZXQiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX21lbXNldCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9udG9ocyA9IE1vZHVsZVsiX250b2hzIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9udG9ocyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0ID0gTW9kdWxlWyJfcHRocmVhZF9jb25kX2Jyb2FkY2FzdCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfcHRocmVhZF9jb25kX2Jyb2FkY2FzdCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9wdGhyZWFkX211dGV4X2xvY2sgPSBNb2R1bGVbIl9wdGhyZWFkX211dGV4X2xvY2siXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX3B0aHJlYWRfbXV0ZXhfbG9jayJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9wdGhyZWFkX211dGV4X3VubG9jayA9IE1vZHVsZVsiX3B0aHJlYWRfbXV0ZXhfdW5sb2NrIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bIl9wdGhyZWFkX211dGV4X3VubG9jayJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9yZWFsbG9jID0gTW9kdWxlWyJfcmVhbGxvYyJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfcmVhbGxvYyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9yb3VuZGYgPSBNb2R1bGVbIl9yb3VuZGYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX3JvdW5kZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9zYXZlU2V0am1wID0gTW9kdWxlWyJfc2F2ZVNldGptcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfc2F2ZVNldGptcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9zYnJrID0gTW9kdWxlWyJfc2JyayJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfc2JyayJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF9zdHJsZW4gPSBNb2R1bGVbIl9zdHJsZW4iXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiX3N0cmxlbiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIF90ZXN0U2V0am1wID0gTW9kdWxlWyJfdGVzdFNldGptcCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJfdGVzdFNldGptcCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGVzdGFibGlzaFN0YWNrU3BhY2UgPSBNb2R1bGVbImVzdGFibGlzaFN0YWNrU3BhY2UiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZXN0YWJsaXNoU3RhY2tTcGFjZSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGdldFRlbXBSZXQwID0gTW9kdWxlWyJnZXRUZW1wUmV0MCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJnZXRUZW1wUmV0MCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIHJ1blBvc3RTZXRzID0gTW9kdWxlWyJydW5Qb3N0U2V0cyJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJydW5Qb3N0U2V0cyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIHNldFRlbXBSZXQwID0gTW9kdWxlWyJzZXRUZW1wUmV0MCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJzZXRUZW1wUmV0MCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIHNldFRocmV3ID0gTW9kdWxlWyJzZXRUaHJldyJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJzZXRUaHJldyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIHN0YWNrQWxsb2MgPSBNb2R1bGVbInN0YWNrQWxsb2MiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsic3RhY2tBbGxvYyJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIHN0YWNrUmVzdG9yZSA9IE1vZHVsZVsic3RhY2tSZXN0b3JlIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bInN0YWNrUmVzdG9yZSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIHN0YWNrU2F2ZSA9IE1vZHVsZVsic3RhY2tTYXZlIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bInN0YWNrU2F2ZSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGRkaSA9IE1vZHVsZVsiZHluQ2FsbF9kZGRpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZGRkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGRpID0gTW9kdWxlWyJkeW5DYWxsX2RkaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2RkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGZpID0gTW9kdWxlWyJkeW5DYWxsX2RmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2RmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGkgPSBNb2R1bGVbImR5bkNhbGxfZGkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9kaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGlkZGkgPSBNb2R1bGVbImR5bkNhbGxfZGlkZGkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9kaWRkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGlkaSA9IE1vZHVsZVsiZHluQ2FsbF9kaWRpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZGlkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGlpID0gTW9kdWxlWyJkeW5DYWxsX2RpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2RpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGlpZGkgPSBNb2R1bGVbImR5bkNhbGxfZGlpZGkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9kaWlkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGlpaSA9IE1vZHVsZVsiZHluQ2FsbF9kaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZGlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGlpaWkgPSBNb2R1bGVbImR5bkNhbGxfZGlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9kaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGlqaSA9IE1vZHVsZVsiZHluQ2FsbF9kaWppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZGlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZGppID0gTW9kdWxlWyJkeW5DYWxsX2RqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2RqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZiA9IE1vZHVsZVsiZHluQ2FsbF9mIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmRpID0gTW9kdWxlWyJkeW5DYWxsX2ZkaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmYgPSBNb2R1bGVbImR5bkNhbGxfZmYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9mZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmZmID0gTW9kdWxlWyJkeW5DYWxsX2ZmZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmZmZmkgPSBNb2R1bGVbImR5bkNhbGxfZmZmZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9mZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmZmZmlpID0gTW9kdWxlWyJkeW5DYWxsX2ZmZmZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZmZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmZmZmlpaWkgPSBNb2R1bGVbImR5bkNhbGxfZmZmZmlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9mZmZmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmZmaSA9IE1vZHVsZVsiZHluQ2FsbF9mZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmZmaWZmZmkgPSBNb2R1bGVbImR5bkNhbGxfZmZmaWZmZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9mZmZpZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmZmaWkgPSBNb2R1bGVbImR5bkNhbGxfZmZmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9mZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmZpID0gTW9kdWxlWyJkeW5DYWxsX2ZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmZpaWkgPSBNb2R1bGVbImR5bkNhbGxfZmZpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9mZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmkgPSBNb2R1bGVbImR5bkNhbGxfZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9maSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlkaSA9IE1vZHVsZVsiZHluQ2FsbF9maWRpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmlkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlmID0gTW9kdWxlWyJkeW5DYWxsX2ZpZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlmZiA9IE1vZHVsZVsiZHluQ2FsbF9maWZmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmlmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlmZmZmaSA9IE1vZHVsZVsiZHluQ2FsbF9maWZmZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmlmZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlmZmZmaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfZmlmZmZmaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9maWZmZmZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlmZmZpaWkgPSBNb2R1bGVbImR5bkNhbGxfZmlmZmZpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9maWZmZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlmZmkgPSBNb2R1bGVbImR5bkNhbGxfZmlmZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9maWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlmaSA9IE1vZHVsZVsiZHluQ2FsbF9maWZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlmaWkgPSBNb2R1bGVbImR5bkNhbGxfZmlmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9maWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpID0gTW9kdWxlWyJkeW5DYWxsX2ZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpZiA9IE1vZHVsZVsiZHluQ2FsbF9maWlmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpZmkgPSBNb2R1bGVbImR5bkNhbGxfZmlpZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9maWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpZmlpID0gTW9kdWxlWyJkeW5DYWxsX2ZpaWZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZpaWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF9maWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpaWZpID0gTW9kdWxlWyJkeW5DYWxsX2ZpaWlmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZpaWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpaWkgPSBNb2R1bGVbImR5bkNhbGxfZmlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9maWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX2ZpaWlpZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZpaWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2ZpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9maWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpaWlpaWZpaWZpZiA9IE1vZHVsZVsiZHluQ2FsbF9maWlpaWlpZmlpZmlmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmlpaWlpaWZpaWZpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpaWlpaWZpaWlpZiA9IE1vZHVsZVsiZHluQ2FsbF9maWlpaWlpZmlpaWlmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfZmlpaWlpaWZpaWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmlpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2ZpaWlpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfZmppID0gTW9kdWxlWyJkeW5DYWxsX2ZqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ZqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaSA9IE1vZHVsZVsiZHluQ2FsbF9pIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWRkaSA9IE1vZHVsZVsiZHluQ2FsbF9pZGRpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWRkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWRpID0gTW9kdWxlWyJkeW5DYWxsX2lkaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWRpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWRpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9pZGlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZmZmZpID0gTW9kdWxlWyJkeW5DYWxsX2lmZmZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lmZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZmZmkgPSBNb2R1bGVbImR5bkNhbGxfaWZmZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9pZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZmZmlpID0gTW9kdWxlWyJkeW5DYWxsX2lmZmZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lmZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZmZmlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWZmZmlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9pZmZmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZmZmlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lmZmZpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lmZmZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZmZmlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9pZmZmaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWZmZmlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZmaSA9IE1vZHVsZVsiZHluQ2FsbF9pZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZmaWkgPSBNb2R1bGVbImR5bkNhbGxfaWZmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9pZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZmaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9pZmZpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWZmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZpID0gTW9kdWxlWyJkeW5DYWxsX2lmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZpZmZpID0gTW9kdWxlWyJkeW5DYWxsX2lmaWZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lmaWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZpZmlpID0gTW9kdWxlWyJkeW5DYWxsX2lmaWZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lmaWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZpaSA9IE1vZHVsZVsiZHluQ2FsbF9pZmlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWZpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9pZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lmaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWkgPSBNb2R1bGVbImR5bkNhbGxfaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlkZGkgPSBNb2R1bGVbImR5bkNhbGxfaWlkZGkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWRkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlkZGlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWRkaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlkZGlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlkaSA9IE1vZHVsZVsiZHluQ2FsbF9paWRpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlkaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlkaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWRpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlkaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpZGlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpZGlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmID0gTW9kdWxlWyJkeW5DYWxsX2lpZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmZmYgPSBNb2R1bGVbImR5bkNhbGxfaWlmZmYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWZmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmZmZpID0gTW9kdWxlWyJkeW5DYWxsX2lpZmZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmZmkgPSBNb2R1bGVbImR5bkNhbGxfaWlmZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmZmlpID0gTW9kdWxlWyJkeW5DYWxsX2lpZmZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWZmaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlmZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmaSA9IE1vZHVsZVsiZHluQ2FsbF9paWZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmaWZmZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWZpZmZmaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlmaWZmZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmaWZpID0gTW9kdWxlWyJkeW5DYWxsX2lpZmlmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpZmlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmaWlmaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpZmlpZmlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpZmlpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpZmlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWZpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlmaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpZmlpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpZmlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZCA9IE1vZHVsZVsiZHluQ2FsbF9paWlkIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpZCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZGkgPSBNb2R1bGVbImR5bkNhbGxfaWlpZGkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZGlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWRpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWRpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZGlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlkaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpZGlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZiA9IE1vZHVsZVsiZHluQ2FsbF9paWlmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZmZpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpZmZpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlmZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZmkgPSBNb2R1bGVbImR5bkNhbGxfaWlpZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZmlmaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWZpZmlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWZpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZmlmaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlmaWZpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpZmlmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZmlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZmlpZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlmaWlmaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpZmlpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlmaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpZmlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpZmlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWRpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpZGlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWRpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWZmZmZmaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpZmZmZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWZmZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWZmaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWZmaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWZmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWZmaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpZmZpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWZmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWZpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWZpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpZmlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWZpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWZpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlmaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWZpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpZmlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlmaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlmaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpZmlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlmaWlpaWYgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlmaWlpaWYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaWZpaWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlmaWlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpZmlpaWlpZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpZmlpaWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpZmZmaWlpZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlmZmZpaWlmaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWlpZmZmaWlpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpZmZpaWlpaWlpaWlmZmZmaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWZmaWlpaWlpaWlpZmZmZmlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpaWZmaWlpaWlpaWlpZmZmZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpZmZpaWlpaWlpaWlmZmZmaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlmZmlpaWlpaWlpaWZmZmZpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWlpZmZpaWlpaWlpaWlmZmZmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpZmZpaWlpaWlpaWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpZmZpaWlpaWlpaWlpaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaWlmZmlpaWlpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpZmkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpZmlpZiA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlmaWlmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWlpZmlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlmaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWlpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWZpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpaWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWZpaWYgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWZpaWYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaWlpZmlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWlpaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpaWpqaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaWlqamlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpaWlqamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlpamppaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWlpamppaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaWlqamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlqID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpaiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpaiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlqaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWlqamlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlpamppaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlpamppaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWogPSBNb2R1bGVbImR5bkNhbGxfaWlpaWoiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpaiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWppID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWppaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpamlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWppaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWppaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWppamlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWlqaWppaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWlqaWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWpqaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaWpqaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlpamppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaWpqaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpamppaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaWpqaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpaiA9IE1vZHVsZVsiZHluQ2FsbF9paWlqIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpaiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpamkgPSBNb2R1bGVbImR5bkNhbGxfaWlpamkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpamlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWppaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpamlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlqaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpamppID0gTW9kdWxlWyJkeW5DYWxsX2lpaWpqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWpqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpamppaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlqamlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlpamppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlpamppaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpaWpqaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaWpqaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqID0gTW9kdWxlWyJkeW5DYWxsX2lpaiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpaiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqaSA9IE1vZHVsZVsiZHluQ2FsbF9paWppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlqaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lpamlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWppaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlqaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWppaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlqaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqamkgPSBNb2R1bGVbImR5bkNhbGxfaWlqamkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paWpqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqamlpID0gTW9kdWxlWyJkeW5DYWxsX2lpamppaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpamppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqamlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWpqaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWlqamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWlqamppID0gTW9kdWxlWyJkeW5DYWxsX2lpampqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lpampqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWogPSBNb2R1bGVbImR5bkNhbGxfaWoiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9paiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWppID0gTW9kdWxlWyJkeW5DYWxsX2lqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWppaWkgPSBNb2R1bGVbImR5bkNhbGxfaWppaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9pamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWppaWlpID0gTW9kdWxlWyJkeW5DYWxsX2lqaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lqaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWppaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9pamlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWppaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWppaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWppaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9pamlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWpqID0gTW9kdWxlWyJkeW5DYWxsX2lqaiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2lqaiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaWpqaSA9IE1vZHVsZVsiZHluQ2FsbF9pamppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaWpqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfaiA9IE1vZHVsZVsiZHluQ2FsbF9qIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfaiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamRpID0gTW9kdWxlWyJkeW5DYWxsX2pkaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2pkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamRpaSA9IE1vZHVsZVsiZHluQ2FsbF9qZGlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamRpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamZpID0gTW9kdWxlWyJkeW5DYWxsX2pmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2pmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamkgPSBNb2R1bGVbImR5bkNhbGxfamkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9qaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlkaSA9IE1vZHVsZVsiZHluQ2FsbF9qaWRpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamlkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlkaWkgPSBNb2R1bGVbImR5bkNhbGxfamlkaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9qaWRpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlmaSA9IE1vZHVsZVsiZHluQ2FsbF9qaWZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlpID0gTW9kdWxlWyJkeW5DYWxsX2ppaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlpaSA9IE1vZHVsZVsiZHluQ2FsbF9qaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlpaWkgPSBNb2R1bGVbImR5bkNhbGxfamlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9qaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX2ppaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ppaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9qaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9qaWlpaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlpaWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfamlpaWlpaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9qaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlpamkgPSBNb2R1bGVbImR5bkNhbGxfamlpamkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9qaWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlqaSA9IE1vZHVsZVsiZHluQ2FsbF9qaWppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlqaWkgPSBNb2R1bGVbImR5bkNhbGxfamlqaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9qaWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlqaWlpID0gTW9kdWxlWyJkeW5DYWxsX2ppamlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2ppamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlqaiA9IE1vZHVsZVsiZHluQ2FsbF9qaWpqIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamlqaiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamlqamkgPSBNb2R1bGVbImR5bkNhbGxfamlqamkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9qaWpqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamppID0gTW9kdWxlWyJkeW5DYWxsX2pqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX2pqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfamppaSA9IE1vZHVsZVsiZHluQ2FsbF9qamlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfamppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfampqamkgPSBNb2R1bGVbImR5bkNhbGxfampqamkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF9qampqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdiA9IE1vZHVsZVsiZHluQ2FsbF92Il0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmQgPSBNb2R1bGVbImR5bkNhbGxfdmQiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92ZCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmRpID0gTW9kdWxlWyJkeW5DYWxsX3ZkaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmYgPSBNb2R1bGVbImR5bkNhbGxfdmYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92ZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZmID0gTW9kdWxlWyJkeW5DYWxsX3ZmZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZmZiA9IE1vZHVsZVsiZHluQ2FsbF92ZmZmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmZmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZmZmYgPSBNb2R1bGVbImR5bkNhbGxfdmZmZmYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92ZmZmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZmZmZpID0gTW9kdWxlWyJkeW5DYWxsX3ZmZmZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZmZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZmZmZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZmZmZmaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZmZmZmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZmZmkgPSBNb2R1bGVbImR5bkNhbGxfdmZmZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92ZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZmaSA9IE1vZHVsZVsiZHluQ2FsbF92ZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZmaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZmZmlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZmZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZpID0gTW9kdWxlWyJkeW5DYWxsX3ZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZpZmZmaSA9IE1vZHVsZVsiZHluQ2FsbF92ZmlmZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmZpZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZpZmZpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmZpZmZpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92ZmlmZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZpZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF92ZmlmaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmZpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZpaSA9IE1vZHVsZVsiZHluQ2FsbF92ZmlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmZpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92ZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZmaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmZpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92ZmlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmkgPSBNb2R1bGVbImR5bkNhbGxfdmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlkID0gTW9kdWxlWyJkeW5DYWxsX3ZpZCJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlkaSA9IE1vZHVsZVsiZHluQ2FsbF92aWRpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlkaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpZGlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZGlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmID0gTW9kdWxlWyJkeW5DYWxsX3ZpZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZiA9IE1vZHVsZVsiZHluQ2FsbF92aWZmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmYgPSBNb2R1bGVbImR5bkNhbGxfdmlmZmYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWZmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZmID0gTW9kdWxlWyJkeW5DYWxsX3ZpZmZmZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZmZmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZmZmZmZmZmZmZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpZmZmZmZmZmZmZmZmaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZmZmZmZmZmZmZmZmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZmZmkgPSBNb2R1bGVbImR5bkNhbGxfdmlmZmZmZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWZmZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZmaSA9IE1vZHVsZVsiZHluQ2FsbF92aWZmZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlmZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZmaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlmZmZmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWZmZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZmaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpZmZmZmlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZmZmZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZpID0gTW9kdWxlWyJkeW5DYWxsX3ZpZmZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWZmZmlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlmZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpZmZmaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZmZmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmZpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWZmZmlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlmZmZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmkgPSBNb2R1bGVbImR5bkNhbGxfdmlmZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpZmZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWZmaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlmZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmaSA9IE1vZHVsZVsiZHluQ2FsbF92aWZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmaWZmZmkgPSBNb2R1bGVbImR5bkNhbGxfdmlmaWZmZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWZpZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmaWZmaSA9IE1vZHVsZVsiZHluQ2FsbF92aWZpZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlmaWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmaWZmaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlmaWZmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWZpZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmaWZpID0gTW9kdWxlWyJkeW5DYWxsX3ZpZmlmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZmlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpZmlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlmaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWZpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZCA9IE1vZHVsZVsiZHluQ2FsbF92aWlkIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpZCJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZGkgPSBNb2R1bGVbImR5bkNhbGxfdmlpZGkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlkaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZGlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWRpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWRpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZiA9IE1vZHVsZVsiZHluQ2FsbF92aWlmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmYgPSBNb2R1bGVbImR5bkNhbGxfdmlpZmYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmZmID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWZmZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWZmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmZmZmlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWZmZmZpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWZmZmZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmZmaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlmZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpZmZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmZpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmZpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlmZmlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmkgPSBNb2R1bGVbImR5bkNhbGxfdmlpZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmlmaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlmaWZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpZmlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlmaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpZmlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlmaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpZmlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWZpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWYgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWZmaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpZmZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWZmaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWZmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWZpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWZpZmZpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlmaWZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlmaWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWZpZmkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWZpZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpZmlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWZpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpZmlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWZpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWZpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpZmlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWZpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpZmlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlmZiA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWZmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlmZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlmZmZmaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlmZmZmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaWZmZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlmaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWZpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlmaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlmaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlmaWlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpZmlpaWlpZiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpZmlpaWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpZiA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlmIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpZmZpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWZmaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpaWZmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpZmZpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlmZmlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlpZmZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpZmkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZmkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaWlmaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWYgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWYiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaWlpZiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaWlpZmlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWlpaWZpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpaWlpaWlpaWZpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWlpaWlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWlpaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlpaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWlpaWlpaWlpaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlpaWppID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpaWlqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpaWlpaWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlqaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlpaWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpaWlqaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpaWlqaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaWlpaWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlpamlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWppaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlpaWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlqaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlqaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlqaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpaWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlqaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWppaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlqaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWlqamlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWpqaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWlqamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWppID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWpqaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpamppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaWpqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWpqaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWpqaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlpamppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaWpqaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlqamlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWlqamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpaiA9IE1vZHVsZVsiZHluQ2FsbF92aWlqIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpaiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamkgPSBNb2R1bGVbImR5bkNhbGxfdmlpamkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWppaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamlpaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpamlpaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlqaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWppaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWppaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamlpamlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlqaWlqaWlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpamlpamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamlqaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpamlqaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlqaWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamlqaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWppamlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWppamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamppID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWpqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaWpqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamppaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlqamlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpamppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpamppaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlpamppaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWlqamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlpampqaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlqamppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlpampqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlqID0gTW9kdWxlWyJkeW5DYWxsX3ZpaiJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpaiJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlqaSA9IE1vZHVsZVsiZHluQ2FsbF92aWppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlqaWkgPSBNb2R1bGVbImR5bkNhbGxfdmlqaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlqaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpamlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpamlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlqaWppID0gTW9kdWxlWyJkeW5DYWxsX3ZpamlqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpamlqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlqaWpqaSA9IE1vZHVsZVsiZHluQ2FsbF92aWppamppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmlqaWpqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlqamkgPSBNb2R1bGVbImR5bkNhbGxfdmlqamkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92aWpqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlqamlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpamppaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpamppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmlqamppID0gTW9kdWxlWyJkeW5DYWxsX3ZpampqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZpampqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmppID0gTW9kdWxlWyJkeW5DYWxsX3ZqaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmppaSA9IE1vZHVsZVsiZHluQ2FsbF92amlpIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmppaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmppaWkgPSBNb2R1bGVbImR5bkNhbGxfdmppaWkiXSA9IChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gTW9kdWxlWyJhc20iXVsiZHluQ2FsbF92amlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmppaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZqaWlpaSJdID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBNb2R1bGVbImFzbSJdWyJkeW5DYWxsX3ZqaWlpaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgdmFyIGR5bkNhbGxfdmpqaSA9IE1vZHVsZVsiZHluQ2FsbF92amppIl0gPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE1vZHVsZVsiYXNtIl1bImR5bkNhbGxfdmpqaSJdLmFwcGx5KG51bGwsIGFyZ3VtZW50cykKICAgIH0pOwogICAgTW9kdWxlWyJhc20iXSA9IGFzbTsKICAgIE1vZHVsZVsiY2NhbGwiXSA9IGNjYWxsOwogICAgTW9kdWxlWyJjd3JhcCJdID0gY3dyYXA7CiAgICBNb2R1bGVbInN0YWNrVHJhY2UiXSA9IHN0YWNrVHJhY2U7CiAgICBNb2R1bGVbImFkZFJ1bkRlcGVuZGVuY3kiXSA9IGFkZFJ1bkRlcGVuZGVuY3k7CiAgICBNb2R1bGVbInJlbW92ZVJ1bkRlcGVuZGVuY3kiXSA9IHJlbW92ZVJ1bkRlcGVuZGVuY3k7CiAgICBNb2R1bGVbIkZTX2NyZWF0ZVBhdGgiXSA9IEZTLmNyZWF0ZVBhdGg7CiAgICBNb2R1bGVbIkZTX2NyZWF0ZURhdGFGaWxlIl0gPSBGUy5jcmVhdGVEYXRhRmlsZTsKCiAgICBmdW5jdGlvbiBFeGl0U3RhdHVzKHN0YXR1cykgewogICAgICAgIHRoaXMubmFtZSA9ICJFeGl0U3RhdHVzIjsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAiUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgiICsgc3RhdHVzICsgIikiOwogICAgICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzCiAgICB9CiAgICBFeGl0U3RhdHVzLnByb3RvdHlwZSA9IG5ldyBFcnJvcjsKICAgIEV4aXRTdGF0dXMucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gRXhpdFN0YXR1czsKICAgIHZhciBpbml0aWFsU3RhY2tUb3A7CiAgICB2YXIgY2FsbGVkTWFpbiA9IGZhbHNlOwogICAgZGVwZW5kZW5jaWVzRnVsZmlsbGVkID0gZnVuY3Rpb24gcnVuQ2FsbGVyKCkgewogICAgICAgIGlmICghTW9kdWxlWyJjYWxsZWRSdW4iXSkgcnVuKCk7CiAgICAgICAgaWYgKCFNb2R1bGVbImNhbGxlZFJ1biJdKSBkZXBlbmRlbmNpZXNGdWxmaWxsZWQgPSBydW5DYWxsZXIKICAgIH07CiAgICBNb2R1bGVbImNhbGxNYWluIl0gPSBmdW5jdGlvbiBjYWxsTWFpbihhcmdzKSB7CiAgICAgICAgYXJncyA9IGFyZ3MgfHwgW107CiAgICAgICAgZW5zdXJlSW5pdFJ1bnRpbWUoKTsKICAgICAgICB2YXIgYXJnYyA9IGFyZ3MubGVuZ3RoICsgMTsKICAgICAgICB2YXIgYXJndiA9IHN0YWNrQWxsb2MoKGFyZ2MgKyAxKSAqIDQpOwogICAgICAgIEhFQVAzMlthcmd2ID4+IDJdID0gYWxsb2NhdGVVVEY4T25TdGFjayhNb2R1bGVbInRoaXNQcm9ncmFtIl0pOwogICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJnYzsgaSsrKSB7CiAgICAgICAgICAgIEhFQVAzMlsoYXJndiA+PiAyKSArIGldID0gYWxsb2NhdGVVVEY4T25TdGFjayhhcmdzW2kgLSAxXSkKICAgICAgICB9CiAgICAgICAgSEVBUDMyWyhhcmd2ID4+IDIpICsgYXJnY10gPSAwOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciByZXQgPSBNb2R1bGVbIl9tYWluIl0oYXJnYywgYXJndiwgMCk7CiAgICAgICAgICAgIGV4aXQocmV0LCB0cnVlKQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFeGl0U3RhdHVzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfSBlbHNlIGlmIChlID09ICJTaW11bGF0ZUluZmluaXRlTG9vcCIpIHsKICAgICAgICAgICAgICAgIE1vZHVsZVsibm9FeGl0UnVudGltZSJdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFyIHRvTG9nID0gZTsKICAgICAgICAgICAgICAgIGlmIChlICYmIHR5cGVvZiBlID09PSAib2JqZWN0IiAmJiBlLnN0YWNrKSB7CiAgICAgICAgICAgICAgICAgICAgdG9Mb2cgPSBbZSwgZS5zdGFja10KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIE1vZHVsZS5wcmludEVycigiZXhjZXB0aW9uIHRocm93bjogIiArIHRvTG9nKTsKICAgICAgICAgICAgICAgIE1vZHVsZVsicXVpdCJdKDEsIGUpCiAgICAgICAgICAgIH0KICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBjYWxsZWRNYWluID0gdHJ1ZQogICAgICAgIH0KICAgIH07CgogICAgZnVuY3Rpb24gcnVuKGFyZ3MpIHsKICAgICAgICBhcmdzID0gYXJncyB8fCBNb2R1bGVbImFyZ3VtZW50cyJdOwogICAgICAgIGlmIChydW5EZXBlbmRlbmNpZXMgPiAwKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBwcmVSdW4oKTsKICAgICAgICBpZiAocnVuRGVwZW5kZW5jaWVzID4gMCkgcmV0dXJuOwogICAgICAgIGlmIChNb2R1bGVbImNhbGxlZFJ1biJdKSByZXR1cm47CgogICAgICAgIGZ1bmN0aW9uIGRvUnVuKCkgewogICAgICAgICAgICBpZiAoTW9kdWxlWyJjYWxsZWRSdW4iXSkgcmV0dXJuOwogICAgICAgICAgICBNb2R1bGVbImNhbGxlZFJ1biJdID0gdHJ1ZTsKICAgICAgICAgICAgaWYgKEFCT1JUKSByZXR1cm47CiAgICAgICAgICAgIGVuc3VyZUluaXRSdW50aW1lKCk7CiAgICAgICAgICAgIHByZU1haW4oKTsKICAgICAgICAgICAgaWYgKE1vZHVsZVsib25SdW50aW1lSW5pdGlhbGl6ZWQiXSkgTW9kdWxlWyJvblJ1bnRpbWVJbml0aWFsaXplZCJdKCk7CiAgICAgICAgICAgIGlmIChNb2R1bGVbIl9tYWluIl0gJiYgc2hvdWxkUnVuTm93KSBNb2R1bGVbImNhbGxNYWluIl0oYXJncyk7CiAgICAgICAgICAgIHBvc3RSdW4oKQogICAgICAgIH0KICAgICAgICBpZiAoTW9kdWxlWyJzZXRTdGF0dXMiXSkgewogICAgICAgICAgICBNb2R1bGVbInNldFN0YXR1cyJdKCJSdW5uaW5nLi4uIik7CiAgICAgICAgICAgIHNldFRpbWVvdXQoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgTW9kdWxlWyJzZXRTdGF0dXMiXSgiIikKICAgICAgICAgICAgICAgIH0pLCAxKTsKICAgICAgICAgICAgICAgIGRvUnVuKCkKICAgICAgICAgICAgfSksIDEpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZG9SdW4oKQogICAgICAgIH0KICAgIH0KICAgIE1vZHVsZVsicnVuIl0gPSBydW47CgogICAgZnVuY3Rpb24gZXhpdChzdGF0dXMsIGltcGxpY2l0KSB7CiAgICAgICAgaWYgKGltcGxpY2l0ICYmIE1vZHVsZVsibm9FeGl0UnVudGltZSJdICYmIHN0YXR1cyA9PT0gMCkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgaWYgKE1vZHVsZVsibm9FeGl0UnVudGltZSJdKSB7fSBlbHNlIHsKICAgICAgICAgICAgQUJPUlQgPSB0cnVlOwogICAgICAgICAgICBFWElUU1RBVFVTID0gc3RhdHVzOwogICAgICAgICAgICBTVEFDS1RPUCA9IGluaXRpYWxTdGFja1RvcDsKICAgICAgICAgICAgZXhpdFJ1bnRpbWUoKTsKICAgICAgICAgICAgaWYgKE1vZHVsZVsib25FeGl0Il0pIE1vZHVsZVsib25FeGl0Il0oc3RhdHVzKQogICAgICAgIH0KICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewogICAgICAgICAgICBwcm9jZXNzWyJleGl0Il0oc3RhdHVzKQogICAgICAgIH0KICAgICAgICBNb2R1bGVbInF1aXQiXShzdGF0dXMsIG5ldyBFeGl0U3RhdHVzKHN0YXR1cykpCiAgICB9CiAgICBNb2R1bGVbImV4aXQiXSA9IGV4aXQ7CgogICAgZnVuY3Rpb24gYWJvcnQod2hhdCkgewogICAgICAgIGlmIChNb2R1bGVbIm9uQWJvcnQiXSkgewogICAgICAgICAgICBNb2R1bGVbIm9uQWJvcnQiXSh3aGF0KQogICAgICAgIH0KICAgICAgICBpZiAod2hhdCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIE1vZHVsZS5wcmludCh3aGF0KTsKICAgICAgICAgICAgTW9kdWxlLnByaW50RXJyKHdoYXQpOwogICAgICAgICAgICB3aGF0ID0gSlNPTi5zdHJpbmdpZnkod2hhdCkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB3aGF0ID0gIiIKICAgICAgICB9CiAgICAgICAgQUJPUlQgPSB0cnVlOwogICAgICAgIEVYSVRTVEFUVVMgPSAxOwogICAgICAgIHRocm93ICJhYm9ydCgiICsgd2hhdCArICIpLiBCdWlsZCB3aXRoIC1zIEFTU0VSVElPTlM9MSBmb3IgbW9yZSBpbmZvLiIKICAgIH0KICAgIE1vZHVsZVsiYWJvcnQiXSA9IGFib3J0OwogICAgaWYgKE1vZHVsZVsicHJlSW5pdCJdKSB7CiAgICAgICAgaWYgKHR5cGVvZiBNb2R1bGVbInByZUluaXQiXSA9PSAiZnVuY3Rpb24iKSBNb2R1bGVbInByZUluaXQiXSA9IFtNb2R1bGVbInByZUluaXQiXV07CiAgICAgICAgd2hpbGUgKE1vZHVsZVsicHJlSW5pdCJdLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgTW9kdWxlWyJwcmVJbml0Il0ucG9wKCkoKQogICAgICAgIH0KICAgIH0KICAgIHZhciBzaG91bGRSdW5Ob3cgPSB0cnVlOwogICAgaWYgKE1vZHVsZVsibm9Jbml0aWFsUnVuIl0pIHsKICAgICAgICBzaG91bGRSdW5Ob3cgPSBmYWxzZQogICAgfQogICAgTW9kdWxlWyJub0V4aXRSdW50aW1lIl0gPSB0cnVlOwogICAgcnVuKCkKCgoKCn0pOw==",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:08.854Z",
|
|
"time": 178.77699999985452,
|
|
"timings": {
|
|
"blocked": 64.87699999996198,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 18.394000000005924,
|
|
"receive": 95.50599999988663,
|
|
"_blocked_queueing": 35.857999999961976
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "downloadJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 523
|
|
},
|
|
{
|
|
"functionName": "a.callback",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 463
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "schedule",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 1044
|
|
},
|
|
{
|
|
"functionName": "scheduleBuildDownloadJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 621
|
|
},
|
|
{
|
|
"functionName": "loadModule",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 195,
|
|
"columnNumber": 12
|
|
},
|
|
{
|
|
"functionName": "t.onload",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 196,
|
|
"columnNumber": 184
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 195,
|
|
"columnNumber": 1250
|
|
},
|
|
{
|
|
"functionName": "compatibilityCheck",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1330
|
|
},
|
|
{
|
|
"functionName": "n",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 195,
|
|
"columnNumber": 888
|
|
},
|
|
{
|
|
"functionName": "instantiate",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 200,
|
|
"columnNumber": 60
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 167
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 96
|
|
},
|
|
{
|
|
"functionName": "c",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 45,
|
|
"columnNumber": 288
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 48,
|
|
"columnNumber": 0
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "xhr",
|
|
"cache": {},
|
|
"connection": "12214",
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/RSD%201.1.0rc4.data.unityweb",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": ":method",
|
|
"value": "GET"
|
|
},
|
|
{
|
|
"name": ":authority",
|
|
"value": "watchdocumentaries.com"
|
|
},
|
|
{
|
|
"name": ":scheme",
|
|
"value": "https"
|
|
},
|
|
{
|
|
"name": ":path",
|
|
"value": "/wp-content/uploads/games/rocket-league/RSD%201.1.0rc4.data.unityweb"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "user-agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
},
|
|
{
|
|
"name": "accept",
|
|
"value": "*/*"
|
|
},
|
|
{
|
|
"name": "sec-fetch-site",
|
|
"value": "same-origin"
|
|
},
|
|
{
|
|
"name": "sec-fetch-mode",
|
|
"value": "cors"
|
|
},
|
|
{
|
|
"name": "sec-fetch-dest",
|
|
"value": "empty"
|
|
},
|
|
{
|
|
"name": "referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "accept-encoding",
|
|
"value": "gzip, deflate, br"
|
|
},
|
|
{
|
|
"name": "accept-language",
|
|
"value": "en-US,en;q=0.9"
|
|
},
|
|
{
|
|
"name": "cookie",
|
|
"value": "pvc_visits[0]=1676673822b1190a1676673827b273a1676673879b6224"
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [
|
|
{
|
|
"name": "pvc_visits[0]",
|
|
"value": "1676673822b1190a1676673827b273a1676673879b6224",
|
|
"path": "/",
|
|
"domain": "watchdocumentaries.com",
|
|
"expires": "2023-02-17T22:44:38.945Z",
|
|
"httpOnly": true,
|
|
"secure": true,
|
|
"sameSite": "Lax"
|
|
}
|
|
],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:46:09 GMT"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "29723236"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9d15568898248-IAD"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "46386"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "max-age=2592000"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"1c58a64-5e2346a1ed470\""
|
|
},
|
|
{
|
|
"name": "expires",
|
|
"value": "Sat, 18 Mar 2023 09:33:48 GMT"
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:50 GMT"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "cf-apo-via",
|
|
"value": "tcache"
|
|
},
|
|
{
|
|
"name": "x-cache",
|
|
"value": "MISS"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=Mi5nmEBJrEwX%2BmRW7BpIlqcN7m%2FGnMYBaTexC9A%2Fe1%2FuE4iCwn2Dchxm7b%2FutCTHB8CTA%2FaSCbjw3siDA4R5hATwXtgztDHi5yVCIfvTVNYILaigJUoyZIKvXoA%2F911NnVqzyUm7yMMVYCW2b28YeOv9QNc%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 29723236,
|
|
"mimeType": "application/octet-stream"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 29756332,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:08.859Z",
|
|
"time": 5257.947999999942,
|
|
"timings": {
|
|
"blocked": 76.1699999999024,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 10.064999999999998,
|
|
"wait": 50.381000000101224,
|
|
"receive": 5121.3319999999385,
|
|
"_blocked_queueing": 36.5119999999024
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [],
|
|
"parent": {
|
|
"description": "Image",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 224
|
|
},
|
|
{
|
|
"functionName": "f",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 21
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 10,
|
|
"columnNumber": 29
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "s",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 8,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "d",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 12,
|
|
"columnNumber": 888
|
|
},
|
|
{
|
|
"functionName": "l",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 11,
|
|
"columnNumber": 60
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 10,
|
|
"columnNumber": 318
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "c",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 10,
|
|
"columnNumber": 541
|
|
},
|
|
{
|
|
"functionName": "s",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 8,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1455
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1518
|
|
},
|
|
{
|
|
"functionName": "r",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 6,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 213
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "image",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/screenshots/3.jpg",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:46 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "image/jpeg"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "82906"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "h2pri"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"62b5ec1f-143da\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "38143"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=D2Qfbo0gcdwZ8t6j7tJ0fOT0vAurRj%2BpkxnC0HziiW6D9GYPf0L1Y4X7NUMJG7V9SSbLTZ0cBz8%2FLax8TdAfrcgH9oBSxY1oW3ABX2lB8pZS4Ya2Ife9BKe%2BlQC%2BEH5Q3nYrAzOFAYIRsZw48FsebNh6thg%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf4f0fd0826e-IAD"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 82906,
|
|
"mimeType": "image/jpeg",
|
|
"text": "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",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:13.681Z",
|
|
"time": 41.76400000005742,
|
|
"timings": {
|
|
"blocked": 23.419000000031595,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 1.1660000000839492,
|
|
"receive": 17.17899999994188,
|
|
"_blocked_queueing": 10.164000000031592
|
|
}
|
|
},
|
|
{
|
|
"_fromCache": "disk",
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [],
|
|
"parent": {
|
|
"description": "Image",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 224
|
|
},
|
|
{
|
|
"functionName": "f",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 14,
|
|
"columnNumber": 21
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 10,
|
|
"columnNumber": 29
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "s",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 8,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "d",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 12,
|
|
"columnNumber": 888
|
|
},
|
|
{
|
|
"functionName": "l",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 11,
|
|
"columnNumber": 60
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 10,
|
|
"columnNumber": 318
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "s",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 8,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "d",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 12,
|
|
"columnNumber": 888
|
|
},
|
|
{
|
|
"functionName": "l",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 11,
|
|
"columnNumber": 60
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 10,
|
|
"columnNumber": 318
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "c",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 10,
|
|
"columnNumber": 541
|
|
},
|
|
{
|
|
"functionName": "s",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 8,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1455
|
|
},
|
|
{
|
|
"functionName": "t",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 49,
|
|
"columnNumber": 49
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 61,
|
|
"columnNumber": 183
|
|
},
|
|
{
|
|
"functionName": "n.<computed>",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 53,
|
|
"columnNumber": 89
|
|
},
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 857
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "o",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 2,
|
|
"columnNumber": 31
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 102
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 5,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 3,
|
|
"columnNumber": 62
|
|
},
|
|
{
|
|
"functionName": "a",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 7,
|
|
"columnNumber": 1518
|
|
},
|
|
{
|
|
"functionName": "r",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 6,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "window.onload",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 213
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 47,
|
|
"columnNumber": 182
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 17,
|
|
"columnNumber": 79
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 16,
|
|
"columnNumber": 479
|
|
},
|
|
{
|
|
"functionName": "e",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 0,
|
|
"columnNumber": 100
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 303
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "27",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/unity.js",
|
|
"lineNumber": 1,
|
|
"columnNumber": 312
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "Low",
|
|
"_resourceType": "image",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "GET",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/screenshots/4.jpg",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 0
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "http/2.0",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:44:51 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "image/jpeg"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "64526"
|
|
},
|
|
{
|
|
"name": "cache-control",
|
|
"value": "public, max-age=31536000"
|
|
},
|
|
{
|
|
"name": "cf-bgj",
|
|
"value": "h2pri"
|
|
},
|
|
{
|
|
"name": "etag",
|
|
"value": "\"62b5ec1f-fc0e\""
|
|
},
|
|
{
|
|
"name": "last-modified",
|
|
"value": "Fri, 24 Jun 2022 16:53:51 GMT"
|
|
},
|
|
{
|
|
"name": "cf-cache-status",
|
|
"value": "HIT"
|
|
},
|
|
{
|
|
"name": "age",
|
|
"value": "43531"
|
|
},
|
|
{
|
|
"name": "accept-ranges",
|
|
"value": "bytes"
|
|
},
|
|
{
|
|
"name": "report-to",
|
|
"value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=WWmw8DJMSvoBQh4GH6IPkFiJV6AP2dMzWiF9H6UhDhsUNiKkz0ol8sa2N9mhTTNeSuwWou7eGQ8rD2fjYg2PIRMFFy1q%2FaPdF0eggPbGJkEA%2FaOtpHJevbulHRMvljt2PxzDtQtCqMNOc9rDwVfoSH8YxLQ%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "nel",
|
|
"value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"
|
|
},
|
|
{
|
|
"name": "vary",
|
|
"value": "Accept-Encoding"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "cloudflare"
|
|
},
|
|
{
|
|
"name": "cf-ray",
|
|
"value": "79a9cf6d1c49826e-IAD"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 64526,
|
|
"mimeType": "image/jpeg",
|
|
"text": "UklGRgb8AABXRUJQVlA4IPr7AABwaAOdASpVA+ABPnUylEckoqIlKrPcGKAOiWhqE7far2/Gj/A6H/9K8f5xwvKVfRPVrGIU49ijZHAe9U0B39DjVDcojNHfD+sf9nxBvGf57/mv7d7L3nVf0fc6dc/u/sCfz3+4fsFzjbQFRp/y/2w8/v7H/svUZgB22/p/6PVsxz8D/if6n9sfzR+ZXjXtS9g/ev81/uP8T+4P3xf0e9X5j/feYl7B/Nfqf2Y/77/zf6H/WfCT9H/83/M/v99A36pf7r/Bf5L9pPon/sv/Z/o/fp/fP9l/5v9h/s///8kf6R/dv/j/q/9p///m1/4X7r+8z/af7j2DP9D/w////1Pfy9Tf0Hv3f9YX/wfur/zPli/s//L/bz/r///6GP6n/p//x/tP+T8AH/49u/+Af/jpB/N/IP88/p/+t4W/nX3P/P9fT+Nyd/Of6nmj/X+2d/ceA/zQ+o/YR90+cnGR6Qfm+Pl+Z9Cn9r0Q/kP9/02ePL7F0wn/RzH/7bCffTqKIpdIsq8nqn1633zn21i9vqQ7Zrg5SFUZ3sPX9Yck96Nfjoc1ATJndZ42IzsAK21vBwGNBdf/Ow3SqOZAJ/6D1gaHk8u65fBN4llwS76FgfdXppt/zOpFsHyjR3Fa4Nn3MGvum+RT2tE3McXVtoGMD6anyq3BVdcXbvEeAesE3SV44WJxXEOUHTvGVlqBGFcE6Kwcw6r8veTYcCynINCuHheLMPomQ0VvvvHAj+qjQcMJ4l+VRjrvsLJ4p4NLxZInWlDKRclzMUaW2Si4XhrILdL6nk9pBERV0qyJ2hA3Fyo73N3dco+zlRlElAT/Ks7IRGcfM4Jc4HzOSMp/BYgXLrdh02u4FyHtzkUeIjOxQKoZ6znJLAnhXCaaBB0m9I4GLUtNeiHpP1J1+NmZ9P3wrR4auLa2F+PuZOrCyJCGesAuhwi+xyWOjuEESq10n7dllP+xrlNF5xAj+VWNJ8GV7CNwyGEx0gKm8hJm1ub8rhNvruPwVeEk/t0RrH8dXNXn78ohMyVDUvifXnNXOYjtQ9dJ5D5AOplklU8S9AqINqQYiev2Zmh+uGVg+u2PeXxTW5NhBumGniz1Oa3J44AD9s3tXft7jOeERDrJCBx7e0abJKpr9ikKpbgyFuIXsTwpnlnQe+boCdU83eKsz6WtU+5s9C8xX08ZoEdAKn4VqcsRpwBNTE5V0bJf86VzeQHsQo7CnF7SP5WwjRkJVXizxrFkMSK4HvVsdsdPqtj8b/YhTzGqlVtVIfP1nInQsZPd2Gp8My0OzYabdVXC50HwZ1sW7UC1S9v//MmCYQ8ukP7MVyvogC348XXr9u4dbAan5kxXZ86mF7K3Su8NmeGOaCzRjqNd5OSQGEAP1iNQXcM+4pcZ528LIjSZwGU+qGZXlyU1uVOKRyOw/P4FLTanbyGm5TSUTNM/o3pOhRD2QYwvq9qgor4XZu9dDzbGDZYK4Q7Hd25Gzawz+e8KGePPGMetOTGMQ77a0I3OIZYzFRgZ88jA/bQmT7y1ccYSjz7aOWJchb8FwlCUaYjDeiUdq7GuU4lXLgnYf4a6mM7kLh9U5D4iA5Bop6RtL7bjyMLIdNOqyEQqz3vTuj6g1ovD9eo270DhYG7lF06GKZ5bpYhPLMptZzBZxWoQXFuLpynRwUJ6ZXrwvpt972SP7sRimtS6BnWv3jTdoGnz2Fwm9QBDfk7Un0RV6X704T7iRxOo86J/BhS6EDNjA4gGgRRVy2dIshEXULZiy8p4If577wRoT4oyNHLkgfdcULdN9jVdu9LdthNFIOND8cKPAtUj8U0Cc7BvySlUuiU9HiESYT9C2Ne9goAEYDr5Pi26jAit7JSwvLWfbaAyzk7sjAcpRZ5dwKG1vV7yuP1cEp9xn0fZFuPJYnfkV5sJImFCJOyV62YEyfAsTB0iQR+pgghNXoVWXqAVQj0RvGJjWFmJWRdXlj5X5H2n3wbqKhmkUXvjugNb2ELC2SphuD9iF0Q7ON0jpaW0mXr/7XLlGaoSXJS4UN9OZhFuWewKxc/hrl5Ul8+n6kVY510dlxZIHEEgMqAVhpjPY7jLp0XlwbMclLPtefGM+U7hnKkjv8uicrKL0Bzjs7rzasleAeiGj3rekHfXhcrMWtYAia0bbSRFCbbr5fzQQ+IIANEK2UGFukhQRcrUL6Zu0zvnJeXlRfWitt8mVYR1Mvho9lX4LY4DbMY2DzkiiU8QqMUyLuuQagK8ggxQ4ywQPbKy8QunJWc71vG6tkXa2ojccjtOidDkJUrKk5Q9Zvn0el8lfckqNxiF+pd4Ju+MDH/RcAs78FzVuxmWiVIC7/xTj2yyzb/thcbCvLYCz2hvZ0DWlKTxqxi2fRtmmbT8+ecFh1ypx4rciZMDVCpSFQ2ScumnjeqF2hWYsp5ot+6vZ2FsAJbC3Ft1Y7RBw1/6Shw91EnwdUsP4GhrAVTVrrRkSvdmGqNhxWtCTsBBDX6p3oBQ8Zp5CB8HyX8qczRtDu6uY/mgluWCAbVmX5yV6hICXLOeGu+UVOEAhYyoRJaq1XDxjHrPMj+/BvEyqi0q6nbi1YKUz0HCm72rea3IVMDYDjk4BwXTOz/YD5N3bt/tHAC8dw6MWaXAZ84qFykiypNZnsjgU88yMM7MoJPAoVbg16uGCfpNehsZRaodDy8BTRqs5pVXe9u6pBrSjhSqVCZ31dpHxOz2cEObyVVI++2Co7XJ8+5v1jIEDm/6GEIkZufCP8YoJHjUOFr3/SD8nk4kOxez2tnLvkIggK3QBXKX1+1C87LMddBSO4tk3vt90wcu5KMN/7hp4tNiED6sG0QLHl0Ywv4H6fld8pYiOz5wA7akapa32OqhbcxZD/WSySlGkwbd8MRNdcT4P1gcM2FVYk5uZ1YcSlZdPgZOaQLQt2nr5UuTcaLUqf8fSlpAvi8vA+66lDWX8EPhTsjgpc3cJu8ZAnvpt2yWwTs4LmAo6eVhMS9KV8MdFHWWeqWg3173Ucbh91gWm1d2IAeNG78+rzySmAwCNCNzphIY2p+IH/S3tZiGH1H+OQ2vc487S4PzuB9dTSTQtKMojMklM48NyXvMI9ht6ReUYiukv/bT8ZIGnqxwWr6r7xKvHB9JtkAZYF0EfL1wNeisOQ2pT98IsMNYzsPCmthZxOdzQ7n4alpo8zFNhNxG1bYE0FGhUaql3ks2qpxmqsEhzVLluKb+pKmwQLdLqmiSBOBncfCG+V3smNVjQIBqNGcdCUPNrjlvVF2Ha0O0egTZNUxuT5IpN1CyHpBUNvbZ8UmDKJFWEIofD3Z5i3kAoRR67N9bnXcfZPiIhTyulsxiQLyKPI+l0vsqMbHhXvnnGAfpvJVm3+T+VTPHBkcvy2A4+XR2j527MeQwZy344qi4yJWPo70mlix9sE4+BN1jToD5SFjXaRhjfdqJqpDELJ+cNduNSepPKiN4qMjCFvmvs3V0APpoaxLD+J/slpu+jp0ouLnKqUARCoZO8CGFqbO0E5V5j6dDMXwJeipbsVdNjxqelt8Jkv9/KGFYd8KRwII+49AivqgcXdKK7O8Q92jfFgzx/LuD5EXeoSexkOhV0kLOlCoG/Y5BFpuNFZxft7BQgLkmoytZ8apx7BMjaWBD/HGTIGwKV5WaeXdvkNYZx+0kA44KAo2/Ane7rZud6NLQIuLGQn84JBLrpNxGEmUbe3D6suLLcbonOns9yR3no0vMu264095qz0bMXuACpYSo78yUHsZgicxhwHIantU/NmBhfDPHbMOKPoguB8OGeTwouK9ZmXqF6OzeBySn4xmTtoBsLPtC508aFvSzHV9AIyawAolqApXaDO47H3ZZMa1wF4dQH0V3VQwEbHjT4XcdV9MpZrOon1KhkodVuIhrAMDjnghcz6Gsud5v0mq1ec6g77EaYKsi4zs6Zmos6srcknDDumdIGr7WeIwNxKCDfdrzKYO/Ij3xEcUd+9dqwVRhQD7SOJF83kVNiObnmw1si+bSLVlUQxD9Pzyx2zbHaDsPPRRPozN0yjEB7ib+vxTrqxZoL8L9wY76q2ciFN6TKjRGh1Kr3uc/jmyuAiomBTyA+U16gTnkXZVU9cJCoiqTahMVewym4JO1KraYEYFMuhdL0zHTgG6ZNwyE/fIVEuea/W7s7GApCPmg3PPt/+h/NpiQNUlvSD8GK0QKoqXxrajfkFzgT9TatZxNh5K5jcx+Wz56I57gwSbumAK9fMXKGa/4AaSsVU4FVyDsrM1Ydi3kBxIkE2ckxte484Ct37d16QZ8GiGxPNB2Ce0WaczbobAbPnh7XZSQ/ygsKNPhGAipk/EF2N/d6XetLlCdHSll5Ef7uiJ8zTELNgz20PeklQSuFOgHqpnU+eejesHE33znuasGXatxtZBqHeRa68sE77zccXvmo6Zs1yFXhHXv9UqauIvF511JzUH7/fXB+W/7TdYTX0nq5F1RRrvFhaQAPY60ZP8QrmjWlJvv54tIcZPD3gtL9Igco9DVbM1hiW6HAhSFm0GHA57YxCFtkK5Mr2ALQO0FokjfXyR8DSLB1lS5+5Uvx0/Ji6qYsmwXUomFcLj9OPM/BRDXeUcA8OGfy5t3rprD+pdR/dlPL5cTLdJSz5ntutUqJxJh2RbubzLMhAlOVYmH4ib6CVIKcHS5kK2wvotIlLb+/u+HyebJh5EkdGos0FDsc7XMluqIptmV+P28Midt40+EkjAMwn3Vbpv0bvE8O2eOdxvdeJNTvG8A8ZEhDrmS+hEN3MteR50LfrGz6BP57PQZLg5l7u4O3xeC3rC7j3ZX/A7CI4E6TJ+yuUuoqo5M5X1hatebBZFg+fXOUP15dPOmHXfx0yOSQCbyB/FxFNg5s3iv2iSS39yzmt2XSTQyE/COQIrrekg/JtK37BWis9NKTrIr5K8iI0Mnf1z6KMBF7B8Fn55I1EPeGb69604Hs82g04PEyeeD2XdiEYnDiSDHl4e+ULr1UZ3BdaSfMNJWRh/LxPN5191GoyfZ4cHk0Ailb4BQ08+SeCXU3pmv4VY0/SzU7rb1Jsn0FMITAj6DwdpwVVFGqPRcAn1bzesgeJhYhlx9H3oDGZ4rkHZqYsJGhPcauskE020NBxmxsXCJmPJPV7a6ChdAe5NNMdzdEovBrUTcnjLMFqo9dUQjConAHTgUVLZ3p2FTz9ShAMKO8j5HcxZrBjqkMmkC5FVLlcWXHvM6JI1fDXi33990PEUVEkD/QmgA9NscKMYSZMf9F5ubTQIwyc6/OIme1XDZweX5bSgsv4S4GvOViLp7ePSH87dHCgEcBUAN2aALrQwkst4c2AZLWoKVdERIiTUMtoXCLbYoCEivixVGEGxmWuNaSHPlcX1TQzLbaMAu36QnwAj3Ejd1N/BwxpXwUklmiASrN0bHJKrpZJuMdOnckofXhIFHDfYyQIuvbs55rTqVO9RKVuoXaLgZyeaJ0GH8dH56ubv8EbpwQAsGSv3yASQ/yrUOpoYq70SS/77k51y7dEYKKZCSgKtp7k64z2TZpZfVx7OGHkIQgfSg5mvkZLIInHDVzngIY7ljPABCs77w0lvJf6vmcOQ5CRjywreOB3vYCWIZpEcFqFOX2BdwKzlWRyQBZWLms6/jAILkpAyZlOH3wJetSobunP/1TFdXrd7EyneRg2evofPTa6WJNThdTAPOtiEOlkxcS3HhmdNaYCvNnh7nZWs0pc4Pa2LRhTbRFrDG6NfX0oli8G6v6nIol4nokOBNUSJOvgT8umURGqdYUO6y58q7215Ach29PBM/zEgww7ldwo9byQKwIHRlpeY3KT5l60KYVVipunuDBojLQOxyyOzch//+k0uNvX2jiaq222zr9NvuldLAsT6D3hffw83CnSsEDgDRrP4GXznxMTPTyH/sXnmq+2oOs+zcVhwfzI+H79wMzEx7l3uJSh26cRtQC3I5IGp1mSt7ZvK+//YsnZLPpvQ6h6FVNPYCPla60SYwX7OARATA2ZfgLM+nwe3G+3tRUzXuy1eCKGt3uWvFp2CZ1fYz62AlFcbusezI7IxF4APYNQBxOKGnianlQuUapJxI2wU11eFCyPrur60hRh5ruaSawWtSLYmnHzBB550smoz6FHrW96kyzsxRH8PLLR06/iV+xRr/ryrgPPpX0D5qN9dTA753a9Rno7bPrOJ0ZN9O7zrZnI0jtWQtkZJ3ZV9qpTwi0e0NGlL0/Qm71qF+mrde8Xt+V0QMUvtoUXQ5o0s/f6Ie3nh1o75tIWfpoKv9mFS73E3pvvHr+lsNZfCfR103w+Ye+59/6N8SFyu6hW51z3NmISi87wIIvDhbUSWUuD1qczmKzu/dbkxknB/k13uTH07EERadkMLn26IyNXtG1gFD3y2OYUo+5+zxfQqPkk99xBdQ0/i8gnJxbgNkvQPseIZf3oWuniIyiE22+JTyRxmmFR5kK7g2u9spjImuMDFdCF5RgdTYV66y6zsl/a73SykDvVZkzJDlqX4zuyXEz41xWsB2759xdSO1YPeI6pE3pZeAOf6zsLc3Npfni/nLUr1NYN2RvXzBdxC4gdVl9HopirCWY4mHE5opQRVAcULEHkasbpfN/nfyDSAF7HixpSTTcsQs/ccXQBoNtwLqjRuEkktZbvPUKyq+/ZRhdZw7fkjKWVE8rx3coavo6YS+u9soxBJoz3lsOtIMyZzIu2AwBKNc8mVL1JBqHUpxkDfpVlog/46yrD75n0nvHZoJvPQlSwA987EhbruNgtmawkUgp+mpeXk4oYmn2p/tC2NgdB7xBax9bZAlVlWe1DXK5vfCVdMbWaTHtqHnYSjyTh2PHPLBQQuz3bKAuGIA9NMWPf9GhFVnnbsh9vpDIns96aDiXHynDsfIxHzsWzj5joNEfgMIGUaXbTJKN8e49bKg0ApcOFTJxEIUZFoWGmA95cEqg/u5G6oDWEKxFrXjvQJ8KMoBL/+CnQfBxooxeM1kL6Tkj2cGG587Pf/hG4jQkS1/5iBT858ZFAxUULZBxL/UKwUlyvtvPKCW1gj4ag/qiUOmiJc2uBoR3pX4ys7t/c9tYiMMBxlhgFc1pa2SEqSAzxmT/yXaJyV+LvKrdUoXPUihX5dZ4JJvddtmEhWlC1oYCn8rdHFdO5mS3IwX12cNHUZifV7N4KeGqL0sCfY3mfsQYwdqxujv9K5jibeL0VunuAeJDXeoyiyege2wEukIoX81DoQMohU+0Xs/z+OE6+xgVqt9ZZ2nak891IJ43HkasLwX7T9tyoJUYCl8Rd9Mtbn8LjvNgXP4Eaxaymbvm/6IXn9CGx2Uzv1kiI8+spOB4BbZEla2M0C2TJiHR0lshWEiGtA5O8zXbQZFReZ93BnJLroRWxHCUadequ2UB1Xl7IKid8/dW3g4GaDKhUrm5DzVKqbfWlvYxSiQc16yXWIWkMmlOfTVJcYpFa+L4vhJpddXHLXiQ7Lwm751bTvJBd4EcPp2YIxGWJNFEki0SJ122cc4E0uDxP9wuQa7P0mdkzQ6izqlV+biMsF+Azys+pyjx6KweEZW8Nj65IsrP4NyPwjZyxbusXwp6Mg0RuCPxP4I1aWuqznhUa/B7c4lbhr2IsYqowBlJegjRK5W6wcXBnTNQ3svk7r50qptH1aHo9sWm8E7xRRRqg/fP6gZo6CbdfPsVmmtYsuQ6Blpl8PQFd56t816qG5QwxbarXHv9p1bbO6Y9iot1aGAjXsZdPeU1IHbf0KKl6vwTyyVIyKnUD9rSE9iqeFC/gR6uILWShFCF2siL0+T808gZyYJPvkCFUmgprk/RwbaU+t5a7LKo1lIybGmJeIDIVSIM/63x0LnurxAsKU1z3P1rzwcufyuBWhvt0t8usacA/H1KNYvAog2tq2VJu3bQF5fyJ+HQroUUu2x2YOdCprhnKB/wh6x7wBQ82rh0OztCG4PTNudCCzsmu3CGnIIKUEMTm6RWvbRwiyMILzwxLv0hRdLc2IsdUNjCjtZHJG16d1ZayV2vxDUNu8xB8LhXkDDS8KsITeBcjk1YulqKL8zpDp07mLs0P0R9fESvoo3OL6JPUDZ/x1OYQYzEHI6uqOd7r8V4t5raD3iuQh69R/N55MNx18gcSb/tlYY0hwuiC9KblIEnPA4nDv2Q55fRtIPyXPrMKgJKlvTJpiPfyY7dACeHAc0X3PXKWv06qfespE1U34zkgaqH24HwU4LoOn0CeYvLwg0YnXbn3IBhmEhv8bJGTCJ8Hr9W0GC+UuONksquFCXtG68OZhlOHOLnLo7rzHcbeytLO9jAD4tB+m1gZnFvSrYNrOVs0y1OpV2CoSbGYkz/uEgVZ+lM6dFUucXLzjiCnCqg795HgHekJ3ANzEMS3sGQ+jcJWU2UQ70MaDUouUvKyRfUCeJVUE8WgTgPqYQI6+bl3t3amN0EGdwykfLytqRAIdBibJf5MA6/EUOPOjHeKYkiukWAzSdES9ArHK3aKIhelLcddyA5+ppbBb1zVRlnvTXpsab1GIelTTJLvunV/l0kGZEj9Hgd87wVRhiPN9mxPXOyaCharT+hOD1WsUkhNWBhJX/7O6OFFM+qkhfovdcJ+IOO0pp+9mpZEvjph8xxPc3axVKwqyn3akOwq94Jl4n0StJ1eK3/i+FDYk3ViPJlScsFjbu1h3ov/P7quICfrVkdO5ixVxLmGu9gtP02abPKhukGuKRuP9tmLulcW5SGLSWAKDJ2PCPSmihp4idJQI5trUTfvpE3I+mc1klUenh7mRFPZlJxdMPx+r9iyMIjLlVLO+3d/m+9EMD8GsHTs/BSBlAubfwg0YJ/EmGCQJlSXsqS8IkRHjhXdnbGcjmRjIRiWR+Mk8Bf357sikDVLCcerBqkI8jWLbTQhpwnLusCsyTtdhZXLVGc+7rgGSDhZuz6X2lFVR6dWmawBzPADND1TBwAl+wAw8xTPvjdZCVBZRKL3AGczPPCLRGDbeAcY2U0XqMFaPZEoS/mMxEBjzW27mEdycqk1A3zsyBPNWwhbNja+NntZ5kv8VZHvo9yPlleUIkBymIFhVbyxfNb0Wn0ezptN/IABJrSHfXeFeAugYgPjm6e39LrO+qGonU9zvHJ7Mg/OLpXQfkuFcSYh9NfJVTsCPnAZfOhqud2wH9HktbFvLn0yv5N/4mLm3qO0iXYm69pTJKnptk4YeYFXSyC3JkJxOF4YkvrJ33Yfl8ZCIj65ngTJfSIigqXfc5qqHLmippF8vYGDr7pI0OoeGIkSswIAxuXZSZBtW+KxxitQtzLxXLuD/3xHru+aNqa8BC2A5xmr5/HYttp3hnpi4L3FciCUuC2iwAAP3zHfJmjA25Kb+KybfHh6j81o5KMvINY4B2I1ubcna9wVOvm74f/PG6AbRJR0XwtQfbSjN/yfBXbsJpckT9qYYGU4rEOK1LgnaZ0lZH9bocaeskaXgiLlYBu5lS2RnJ8r2gZegVIErDRT6WnBx3IEeLgnCoMSjqMkucU2nTzO2WcR+TkM4EclE1YwhdkYWJIIoSo5Lp2LaoX1url0g0pnTsqD9dlCy8TCZ3HPv0sl7zwBsVg0bI/gzKwlopFtqS9JI+EzHGb/5hpWgRghpS8ce9DNHqWA7IJp8M+ccoxn6reTX8tCX3krryA9NC5kM+mNKBddzZCGmqVOqDLdN3VKzlZ9fCxbYLBFp1dDb58RAygPmB+DjcK78m4irKSEznbrdXr31fcSo+lEydyNWoyhldiLaZ1SgEjr5TArAgolOtkcc2vm0s78HnAu1DYfAhTdjyo++R6YbWfC4Bo5+BBXIaBoPOepM+ceGe3/Z+XAT3VI9b8t4y8dgo29OO4qneLmGLQ8xzQyCz8G1YGD4klPHXJ674gSyv6Ad1sFixw2alkBv+MW/2j/PSx+gM1MDCDpD75zUvGSOA1/Vkl7R7iTbu1b0zvipJ0en+PdNfmokOMkC7dQu/nMRg5qqY+/cLN0l8BfFxn6NmRcdLS5S1BY3BEz3wrYTzGGBlOuIhJzyhR3gL6rzh+8heV/m1jtSXA4u8+eLKECxMiu4F27nUyR3J855TcXFUWJYqgtnmvB/5KCORH0iKWIWFBmLvUG7tayFTErhip2UjrChDRdtja9NuJxh6zz+Lr+KA/9t74Kb0mxdWRy0KogAofJ/EJeotBBeepJLgY7Np0InGIhWc9FkaJM+3A3OikRC4jeDO62h7J13i2telpQXqWwfn2JwhiQxgvu7nwak4kL+yw2w4ktOBhTNkDucnpxZo2fGi2rJWHi+VbNhykxRCUnTPfTl25WaFx0z8HAyHNk/48B1XBm1uXgWMT+vtk1V9Fx/P+JWEDqa2/1hd3dc4Gvyo+9ewwYuD8RqhpQRdoM7zI/yPTCoAh9HPiWHOHdPfIykq1MVtRbUUYmZcNof8lx56wIe4cEJ4w74wXmBCSp8FPYFYi8h5NfzYR/U9UCO/NKNfS28M8w9xtS/8P4Tl/9g+WNtJPbsjEc/dwL6C8ohyBYa2nXDP0aruInv1M1qsBV5qo1vOHan0l6sMchFAWnmjEFRcHA48MVS08sQklEWcEYwVz4oLP+qxvsSmbqKqGAlaeDYWhYukEYq7Y4GZieRLRC8OOhIHFLkcjqiYzQOizpym7dF/7KgUjCIxZuel39jUqOTUsaaFPXxMXsqvVLoRiUF3knp9K+BjzdZ+qlKEHIyVbAmS2x+Dkz64TnuPg1SRmr8e1vuBKrv3wQKnFq1332E6p4NNl2j/U+F83YOURtmF3zwD+C/qPlR316IlyNKXTfd6u4imKlbrRr+uIX6YEJzeK/hP/64GTr7lDv3htqnvJ79Gf5AZ4v2pf5jR5mNit/+cBHXTA2lSURyoPMEkIh+cB4hHPG8gio4ymeq1tQ6RluW/B4lPBNNPzswvW0JQ5vomLdB5u0FgVJdM1tFNzzquRM0mb8lK0+GDp1VOX9Ei/snB88oL/kq2Q47R8nFBRbuHxYPHaFBGmfrlGNnTDp9sXlMXjXMnkeNvNvwIMGus2GNfdNuJHcASDZMkHriL0QYs5ENasndiufKIcG+j3wzPzVgOX/3qnJyjbktKGo1F8nqQPRf9dIbZyIo4YmLbny/GFZMHr5a7gHoYowjME0UQFxgTBy/kaH5NjUduWmRB+Zb/P6zmNgcbw8801wGY6VLjHTokcvbgbrE0aFgd3jngA8eeMzrjAzttwjsRbL7FH3NvoAS7RGGo0nxJVZmvPUZEqkF8QB//fffZDYGK4Tw/dkNnB9EtrIr8DCRQFEraL0APomjsjUq3VybkNqsQFJ6NO3geWIqM0pW4FbmTf6ZKFC+nFiZksfncugD1o512GlfrNyqlohPo3wunHI09V2O3QmwfJ7z+P6KKo/OolF/PVfo4DoUM7RivJc9wQq2YGd1sIxrgDK5YLt9hmZSL4lGDFCYZFtal+HJyLxVOYLxhhclZBid5/d+sAbzbz08UZnNHWVjjpXldDGGzHtmjbpegLp0Fz09tj+tEwK41KGZ8MJsg5yrGD3PhRTePsmzC9F15shtJvDUsqZJZX4XnSiufHoNGoTngZiuH4COhopEUIKTHIa52fer5Zwc33q7W+bUR/ThaeTbYx7ajyKxMx9M2Lo66qXEJAXSLynMNpWl0nfvu2fpSciikkCNRCHlu6/MkJqOtCSmt9fetUf21H8Wgb3N+G1eXn8tzewRhy52jidrS7n9J2+KJ7VXnqKs0Ky+YOQCeDSwSvVe2Ck2t/ORnu3jQb3z0MvkLwToz6uUAx401W+Mat1f1SUlQPUOuJ1UVDlgqPdXiKg2LSI6/MwWlKuIYeQ4V+PrZDC6UAu2KO7FR4Ggppf5MT+dwbGlf+SCSLjdO3ZT3DruUkSyXpv9rzRSHjQMjgI69TAINU30BUmkKadweSZtQvFC55+tpAON6oyx4skMJu3/aPKoSdgaeYuuFmSu+SUdRNMWHlt6wVyExZmr99m98P/VqEok0JZu4HQLHqzMbceGlJ+Dca2fUbCRTpQjxJe5FAB469P969gc2qffDilEsaI6JElS7lFNVQoHgQ8gYllfPeB8x6Raf9Mk87wOMfQYcsqAFVGp6GxnmdeI1eNMntGeLqTJwajotB+NXLSkYvzBItBGdQJA3SVnxXDbRV+1UX36id//wpLnNf9RE9LuJR/PSBgCN1i3r7ZUTINc6+klCcruFFkgTIKzxiMU/MzjRGEvToijt4yVNGFG5hnUpJ0+Pup/7+fYasFGOSuviMGgaX/fzEODiA/8hJneqSx9CfnkJ3bMShv1zFF+o8WG325S55EOSeQVmmvM0glvW5SyWivSMvgIc9tH5Lt5BDWffSVVBpIKubXiPj3BUuV0Vgfu1Ka69nD9E3ndjFsTog3n3F3rA/328UpPSg/P3//tE2Lrf4Y2PGyHt0iVNOPKbdtVyl0BwQ4yEvc+IOw/czJ4gIC/5S8VYc80cNeR4SGH8LZDy1UAKqUWN7Ut/afClDPtR/lqb9OB9ObrupT8UIYJ7KZ67PlC7wx2g1gdgDoMv3T46dyfKaoeWP8zqUEV6VtVvryslPXFLkjf8QyPoKiPFvUspBrs+P0tiZI4ctlUZmwmZFY4DIDMYtmd68MVGBl6cQTAm6hB7DuknHprS8hoyA3VMIGyM5OtuLt1LkrhbgLPDTwXaTicKct/GsrLOH8l04RXt60rbT7PX21XubUFOsd1f9NEiQdArDmrcNcmuhktMneWcWIIu6A4fb1VJgVtmIc51B/nn8hJk+ZJ6RASE3hK9UO5JQD8nwXpuTRJocy2R5a5oF5OPbjQLpUbJi0uQXQ2qizhtbGiEX7ozjX4BZxTAGyBGUshg7KCvsf+hnfU0orKOvEDPxqSVWKHZZIoD3NurxJx4lHFqNvvZJc8VsshKU7htyDywmEHeJC+/zq9j/e5o5F0XmiXswfGyqdcJwuoKiLDp7frexFTwnxxwPGVFo6WYVOYy6D2ZUrJteZyiEccW69fprbZDuVGlyjWlcx4ltrdmLg9doul8VjPXAz8NVu0GMJsCedA9m4F9SfajpCpkPA9rRRftnghpeBKbLICzJWnt3NRkDyChmo5aqm9+J8WpPnnLxMD2Ix6wNi26vNzUzFlOzorLrcg3nNPzqzvBZxj4G0/RNIkWsmcSQfw356yZjx4bR6JaPgiwn+L3dkHNBVc0xNk7qYi2RM0/gZsSVwie0X11tnWPGw1FzZtWst/Ja6quLNGqgXMwCAjtzN2wJ6Uex/N/Nv/TLrGIZDWgDSJ6TqeaCUPg8cn6O1M3NQevpCXOuKk5Pk4y43IwELeWprI3Xgw8sV95UlhuOFac+E/1mGVKUyGhx7JGBQZFIw/uverKT5lTJ/WnWrF/oB2SJNz7iNP0AwcrJmvH8SUg0klNSly8IXldUa0CxhCk8gQckZ2u8ujc09N9GE33XGg3A86Za+vx3a8ZKKHHPeUBgoDzEsaPkseZoYCoL6993r7nG3/jY7SCzEN+NIrW/jI7jPacOLTWl6Ei0fNj2phmvPhtKLH6ol62niHiRC5kfmq5/tjSNTihmngklUSufYqSKcF/9US2WCbBBTKZo8K9CGzjvaBsM9SMf10t9Z6iSQ+dli/FIUpE73Bznkw4F57NzPrp8ucvlPfLQA42c8bpme3hekx04ASHocA3BQHBbHUteIyNgGf2ZAsLZN3WNHQCeBD6rv91Y40WOzfIMEk10ZoW7wcwoEsgZcOGsq6I259xgpsXc1rq8KIKLgQeVvTgamk4mM1VJh++MjBasu6GHJEZbzwTf6D1oVAJ0y5I0BvMhjSn4ONADNUn/dHgyiIfEXP18qjlVNI0HcBO0kK5o1V5zLIyLU8OQFzrwwzXatjsNqdRXKq54LoEZZvq8+IUZ0Pkxy9LgUFyKcK6za12nUlzoqS7RB3mIt3CoicYJ8FBSl7qxEPFyF49Yy5ELMLwmvfq31qre1ZuMU22vk2uPCfx1IuO9ZsaHW4UNJ19zbYe5kBC9YtnNQ06AtirtwMRhLevyztYEDq8ox782mVAMDyszY/EJH8RHgugtdalGo6eiQ/WV3vwSt3RyKPtxF2YCg0xDKWD/5d069+PmbNx73geQ8Vc0PHOa0Q1JB/JMzwTmx4D2LF8Wu5Zc8foVrRU8Bhi7MwL3jq61Wv3w/t02uM0Pakyff/wsAQTOQoFJY6Bw2LpQvk6bBWgg5JM4dulMX3WPe//uPViPfekbmVjz56LtphyzFaMIsTo9JdSr5iiR0Ne66Z7MrIfxInnjme+3L6kQocP02s8ajdkuRO+3Yf2mFymGqBoN60aWWFfD9ymOMBSMRkj+KN4PjG9CNLVAYVAdN/Nt3VSoYUkeUZhR2VOF3Zs7gm0gPfEn20xrzgQcBFlvxM+5JIlfYb1S+uhZ9xbMlhWnkOaj64J9M2M7+8whdMA8K88TZ8aE6MZzjEaSBsHWuG0+4bm7CB25VxzIKRT6DxZ2ws3eEW0DlcsA1APVDZ673WLJF1wO0GTWvb4m0QPCsESiPL1zxLlowALmoREHcC+cIt2Hizh7zCbaFs90Pf/BOKb8z8E4m68hEo4t3trbptMHpJdFYDvPESPhULh4Gaqcp+FyzPLeqHIxYkGVoTLbKnisIq059xVcLbZ/HBCF/0hLiXvJbaE8gp2bmmdufSXy21tprkX2ff7trQeMyPIDy1WOhuDlE7XB603f0vlYr9M2ktFlo862aM7JW5AXthwmxETqVIdsuhi79MCnyhppG/zRjodDkEE5TJN39/3/3GUWmYUNr8wVsyM9Yo38NE8sR8jiAEYtEMHRzOzaVjVhfx99Q6Gdf4H0Bv6RW2xCMlQ7WVcOePbc8vt763MIQvNH7uNApX1h1MjIhOIyTaMvVUm2IPhNgaPdqTojtHuGUXpW/9aQlINUJBwnAzd2G85xM8GDpBw0dJTXLmgEIZq+EDcb3ZLFhEGns2WUEXuOReCvaUZoau4GnIGEJ0vYeXdxlTgv+H0rFB4ufefb3FeUgACudobPNK9xNdfh1qoSOoB8e0pbT3E7VhfsEKaSl5vE+DqSdFtklxF6snUFpBGcFFrDbQqCLRvVPKSswyMych6indmFIFBzRhEtoFwa/PgolgK8b9jiDMEOfHGRAoaJqi6BRS/3ffV4V3tFLl1IoSjtuzmNVVLjP9OVQLh0EZdLCuqaPgNNMkt+QrCq49J1Uwa3GAiOUdHTQw5Q99i6DLuGdirkuTb6YKWRsT8VN+rbOD3cYj21csTHQraAO+JNEz2qTa+ALrshHW/4yb/7Y1XjJ7wLA6SZGk0h0XyfBbdOfzCm4TYHZV28BfBWyNb29V8mA8jS+3gMVWWfYVkMR0IczLfH4o2hntyYGcWN4gpM/hJwGyYyRQ0LASV+9iiqG2Hqrvhfyezup7bx7GwFDj9j87vXlqQQq0bKNXgTNPv47x4w2mRugPLUNIAcsJ5oS4r4otW/Zs65APA/lTQKehSadqXZkO2vP0epjdO0uY1USlb3l+uL2UTBQYwwPos3a34wtWHHwadaHR1csLXxNk42pgncQKKFnjiznRzVmlUxddnBa1bNddgTUxeuXXI1IoGwotdefiUyTil0W9uvCSJ3R6G6cai4RJ/APdB63lYSXDYQkLIVXTKF5Pi7cyzA5jWzK/5j1+l0RRbDK26pHaJosYR60YIE6vFcNNYL0VsehuUxpopf/x7WOiSR4MCWtXSEUFFGQyG4g09fGSMJR/WExx7+7Ni+ORT/b71NR9tHH8UMJEyo4rCTa2PXr4CkENuXLxRM+hzQGXkd/DUuUGZvUGVI/BphsZYlNj7c1OBtk2ruesge1bXeVPnusePsVf3sX1Crri62nC688oQpw1w2x03AG4/YmTiVaneEm3A4AU52H89vpnFPlq5JBpfazdGLncndoTxsHr6UVKPohgy1cV34j62uXGQSJeWlNs1UkGUeyEWrIpmKNx7dEdyGbmqGX0yibJw7j/+eZ0Sqklu6KBwao7feYYU1Xc2DwTlOXgRHdk3hyLjlQDCMLkTU0s4hKpwJrztbd32jtaxk2huVJVrvSmGo391fecxg307wIytChRn4o/lmTy6RyoTd8LEFq3EUGVZtwdyqFamG7Z6sPz6y69SVH0z+eg43ZbDZokW7kSZY2oXl1DhEBO2tm9pO/olMU1/vC25Prgsmblymq2GAXZY7ZozUcDxZmz8T4U7GjF5ctgmytae8dRtdSgMgcvHIAc72i7PPD8CJDGr2j/Kv+bziHT7cL8pF4TuZT6qJOnSa7jiSbtz7og7gWNvzfflcozwPB0/WD1Bl+n7T54lwNLsYAqnGUDk+RDBPPpNcw1Ka8wk2PjRykr8GHeveBfLohZGy2DRQP5IcV1UDd9lFbol88hu/VUJ8aq7eRoXVWHlWc5b4wxZTXOoTksduGwM/ZuO4Ta6Bo4mS32qjAPVctuUeSL0WadoxbtbKvubfIDNtKZnC/NWoOqhW1jI+cjcLyYJKvo+LksQSzJfI//uihx+Vw+9msw2BDoxqBTgknSk+z6xrr1dr+tvuBuwhPqJf0Z883ID9w2K/RYnsX0gNYSP3KOOYQQfLoDxTGLIsneKc3Q7+ZJT+CBiVGwAz5sB9WE0GPLJEJt7BVm4lFRJDW1xaZlWU7LHMkQN7Pzady2Q+kaYdtqIseVx5l8hbxh02n2wU22FT7Z+R4n3AYFtMIOKlrZdU9VSSDZBhhPccLVtxU8NJpT6UW/p1ffpKd773/SLnsAWwwfqkavOPhLkFGwCD5JpCofenJunXB19kEcI3uMlOVPDnGfq7BVyU8CIgzjWDDpj6xVqdGt3/5v5gs3w7Sr/7SrvZZUfCE4TnQfPyl7ZD53Ss3Kg0bvX2Zsu9bvmu2dhoqHoue+OQoHPZsrwN0KT6X2eb99NITLbqYQcp67iI4xGVXojmnQw4yI476yaOpJZUz/w8o4E8v2K5kmOqsxgpCP3q0aS7pR0JR0qaWzE60iY6dvMlgJrT0D2qOfO81WI443R7zetqXuB0Qg02rDWpEnjrRSpF40xgMAVLA6vG1PJM8HW4EfcfMZ8TBHAQoQAcR4HikuoLB1HECfjKg6uDfrzECYzhhdtkk6JUO3yO0JSu2B8N2cFGFhSa/ErREPRShlIROSx/YqpuGm+DjdKzVJdLHCaVNRNwglbRWLtiIwJm4IA4+Gn8JSVwBg2GXU4W7cAV7Y5Xn89vM9KIMOdp2oLDF+zfbrAmen57IHNLR10nlgNkLO1dnwOSkDKUWeMrj2WTdUpH6tETcyLVZLzOP6yVncR7shMoaiGMgpC0toexuGSpc6WhN7vksPkISASEKPWfUjYIz1XbIJe9UNFZGducZ//otz8o23fa4+6wJi8u+5ynmye6XEb8N9X30CECCg4DWIufznq6g+VgIv2DiMM9JZRb3Waq7M46BoI2NK9s63EIxiTEkq7HdlqwUKaGSLYulMwjlJo9hIr4K7gFbUTWO1yskr/ly6Dc0vcNwGH2NavwKdM0z0OxrINb0RWe0uk0gxRB25ElhHqo+TlWpfQXAFqx+Tmsfx9ovC1Usm3QFtJllCTUy+C+tB0b/P96QYpzfhc52Y93mIm31OcPpGb9Aj80FyV7EDq95vPyS1Bx04fS2R1WCPgsyayjuPJ1PEKhIFXIfcIe3ZWoEjPPe/7Ma3eljTB495WXuskRk9XlZyvePBtqWHo9ADikRc1rApm8uCXTbamxA3FLnPE9M2+hjvfKRPvsrRHB6lg+T5ycGf8R4vnw1vd5Fdw983HGlMWqvBQUHeZNmMQj449twHI4tAWdZTB6x+JJx1GKVd2eL+ZFs4iYsu1z5e0fW2jmfQQqSD5KzMh+RuMsdaCOC/lM6oF6HUf2Ixshm9qAvFOpq1+0XgIqmu7i1prYfu/WGnesemqzFP7hTkuRuD1wpi/ombApi38qjAJjDLCMfh9G7tuGjNIXIXLwvNpdxAMNAMnjSDwnlFR2e4ZBLTpZT0VdYOezyijOrmkP/ugca6h478Sk1AnpeKNAM7K/AhTg+q8I9/l5c23c/FEKC8PxTctBFbZjzmhuysTNsgh1NhqY97Yu3Oyz4qzwE3iwA0fkrDgfU6n7ry6cwIK1s8lHx31WZ/j3WsA7ry9r+y9ec+FsJ0MQCrcdHwXXVRAcC7Oyt4r+9LSBtC8TDwv53FmBADSdE1Tvyqw1KI2MXIyJWnK9XLRMfV8Z2WJPpi8fPFywUW0ztaNKH05kXm0xlzs7szkTXRtEM9/ajIUwuGGUhjtJaYHnY6eGYegXrwWHZfmlQddQbV5cjEyFlMApOcSaeEdcIdDLJMRT7P9l3661q6cwGFdJgAu5xJ41Kw2Q79JYIdiiO25hNTRpZuDpwwaXTxVLjCo74ByMuWNzEEWrTdUFsaChg5WnPh5EyX5KFDJSgHE6wN8SN/Z7KgyhkO0Pv9tVm0Z3A/zXmNKP6i7iJHO2ZTZsse+LqMRkQfGbJjc7/DJs0oL1RBtxU1tBpVyec4WIjtUtTQBTkqrUP9J2iQAVhNGoUjJch12AGaDtxHEEV6N+iPuAMchsDeJtKNIdKOoKw25/cY/XhFshdMJOFxXQNaEIXLsGMFeuPJh0cKcu7FVVkpD2ycloF+EYzEubhBsN/EUrB9dEWXmeOVNhrQfTILIJ5XQ+S0kv1fVGhYbUVyPtiYVKx4k2zVV5KmM2ZCxGE8+SNYQu0lg2uyFvlneF0+dwa11oqr5kjljzKx5J3hldhYws8fFPZLjNMfrCtwkVNA7iBAXX5u/21v39zbbu/Brw8G4uWfkO7XjWa06PmE21pmSFCckbd/flezNz5zgsgPfqI9hjaAHVlOw3f+UD5AD+9pmGxwD8fAe6rMO9VAin9UYOhA8PGevDmbe7MzFCSSRUrNpoA2TGrLZCEpUFxUcC7i8/AIn23LVNrHzcDhugo7WsBuqZESUAgLzEoMrOJPntbAvuHjjoEedF2Qd9T84Km56mIsi15nMcrLx38vt1N1WOTf62oiBXrivf7Bni8DUXSnlmhvYdITS60HU2LJ4zVTRXtBdFpWkQMyAPaTnjK2PIaTijVOuT1wzdZQ6TesNSFjXnKRvq82kTgSjl+fbTKB1cN3ASx+ZQiRmvzjte67TME5pKdAKtg1BSTAKHK/E4H3b8przSCdPRR70jUES145IbQRgN2EXUiDtSaFldYijORLXQ+wDNEOjCqCWWlHbE7yh68LywbGkV0/Kk5SGEC5QlLRVImhj1hkggOE5ph2/t1iTDiV5YXGVa2yPvTrb4tABNlMgGoqkUYVx6uP4aCKoulYpheTu4wrzFyOsYkhC5EeyPi2dscn2o26k6q1SywVV0b77xI12P9FI7w4B2u5a8bTUfhVI07joetXpGsdJ0Qtr4Vi6NDP8IgexWm7HSfYOH+wr+ap4ZAFClzFqBQximDXydlIy6s9a6rM7ccPuMP5e94Xtvro98Ahk5Jyl7cJnwztYYJ9ub+Gopnw7YQg7mtiB/OMM3r/zQwqoMrIXDRcvTkRRm9DgRiCCWVojzneyR2g+gG0LIo9YABJGe7snpiisc81ucC/RYDjeSdlfJr32JyFtfkd/gUFhQ9q2kAxPzaONzFYfc88phnf+csjeErErRNZlxTIydcCvPauS+DvUygrHMfRQOS8ssaIhrzrhJY5jwW5PvjoXBDK+KRQQqMuFps9k2lZuRfO89yYIV6/kWCpfZCVjUNofkqDkz5zvRB5JBqkfQq7kU0uhS1eV49uYd/KEd8eVyHDluusSUkeFpKl5AwhyFRWmjMgVj9dd1RA77r4523M6O24YAM9Mzn60rydy4ZiU/sdFf3xBBEwM2DyA5Qj0yCwx+z2Vp5KP/8uRcD7KjziVafVTPQlLBT4vE4I5G7f5HehQevmu8hIM2RSkHHs2lRGHkVp7OWuEN6vnVNAgqvNlSAAQ77iZv2GUwID2tDDjTKMwM31N39hTtQX/C0/u7OluecB2OUh90avIsVOxT0t9qzbyTuflbgnx7YvuWnDpXsCfQB2pEdYkR68mp5vRe93M62L+hR9HUQ1N2AJFdILG2v3nIGd9bvs6rSp40ymYjappm3GpTGmsPcx8e88gdGas702h2KtGc5W+7QRFrq0paQkR65QhKJgJiLNd4DkYMRbKfx897bYcM4d7KBDLJJMH58QoybAksCx2aSopGDuY5+lnsGj7sccnBJaUM1b5b+++gpg+AVBn4Jl0u82JfVwX/XZXlM+pV4savAT3kjLy9GNEOA875XoF2SOTB+HYy1M+nNlRJB4O204dUJEP8XNcy9q7fMhoyLom3BANyCQA90XSi7P5LZsolJkWe9xf0YHVKE/Ppgpd4PbLSPldGuLnzGJzTnvub2RlIEkiXn92xu4RNVVElS+GDW5AJvlCatI7P4VET3ODxSS+RX6GOWA1F4q+NKQpA1j34HpiMXQNbCPB3qGVDLVdx5X7igBzJ4Mf0LOgWQD340nXUVkWisDQsDgC2Vht48sXxAjD23LbIHHWu43G7V6uw4kch0TDX1prESEeEpZacxV9MUY2J8ZTM2jxPG8bFXr4UszC77JJAZ3VVPr53wrJ+kBxgdfgaFCNUTB7rS3lVQYXBhRFDhyIb2vwAbs4cq3KnsnH6TP0hn7QXukddkw8zdZR6fRUPJQWCv2fio3zOpMRvTax9aaIGywpoEbWd2npzmy2SfBI5GMf9sGBGS8D5UI487P66vJqiMMoEJ0GEtlf2QOt5cdrfEg1j5k5jYPvw0Yhc6i7PKk7TFRlW6VmxANp79rmYCMxGoQjZVoH8fytai/LWpcN0vijin3MsrXTk6XVlvfy3RaiJ0soIBrizG8znDv8m5KHFRVsO27A0i+eepevVeMAXaRxR7JM3wITkpZnR2ZquoHWE3Hy17YfROYfQA/PGKi7MQOnRQJnr+o1tSuz80/i3fRQUk3JN8tzGlHQRPP0Q5PzEX90DXdEttyCUqw042eECdDLVaoG76pgSgL4ghdapIocRCOhoBv25HFt0hiz30sPiq1KxFodKWysF7Tgu3dHNpb77ZIFVM3K7JludYkyYZuffGtOhGeUKzuHLX2jyhFsGa6AVsfe9aC5/WV03nuIM1+UAOhIwO6xtMnpF8oQB4hMn42r4vWuOgfJAmx3hgrOBAnDy09Hgqwg+VzWVXSMNlcQTXsQUkixxvgCCM21f3oUpYfDuZCvJO0ii6YQ8u3cWUVmL/4jl2Hsst7k6HKc+X9mpYrf3Ijr77dgcxfMuTwiDQZlIaIs/ZdyY1ERqlbFaaN7whTfGZ/fQTgrA8kQ4WXlmljngUf6SokTXCsEl1HeDd/lPXBhzJkU6q4g1B5fXJDKeXFMkWMh5M+27jhDw7Qk0aSIBfZq2Wy8Am8gzYSr3mDXefXv+3AxuvC6pT5ZFVxo5qTnU31rMln4pNVSkcFvkfpxLIQEwfqGopU5w3VSuN6b5DlbrDl7DP2AKJNz/rzPDqiMJNxyD1gocNu9HTr+nxm/fgf1eMbBnBRQPmLC9BMaUuJNNs7/5PZ6smW4bwGVAekh00BF08x09bjZEJc14nlHt5txthHKy/vNjq5OARM3ThzfzovDIXjZOwUOz74CaX5agbQUjq1ANeSTkeP0jWTfyurCMCuTqyNTSsSSbV8Z6NU/tE93LI2/eHfeiBT7EdKUWKbeSJZifvXDQ0aCBDV9WNWq5R+b26scx9GqKr9oK58PLYI+YvnfnQy8UQZiu9DoUwZpwR2odKu5qn2IWXwhX72SXsxZte0o4FDwo6SkRXlrX32yfg+3JYlmEoA/jJstm4AeciJ2yFeMzRDI2rWRd+FDofoqT+yXQQu5NKBEHjKNCmk1afCKx5JAYCOde2Ev9E5AkfXaRTVeEwM/YTe6XiZf0TJPRCuL3ng9w5GUB+ywJF8ANLdDjDGlZXzB39jeMEtAFtq9W3Hlt5mfheqX7ODx1IiRK8d41mH6VxTCpB/Cdc+eifdWnvV4T+ZKjIJ5tomCnNzyW7Z75PIbEjhPdn034PuRCpDRWI6YLqzwp1GaeD48dcsX+RoYCYzRfYKl7DplykaDxNWS3r55vNstN7ePGA2OIyli9P6P6PgjD++vnGPyFc1olfQ8aIQIsG1TKyD+tGtzf4ZAnIuEpRIEqnJxfMKP+VOf2CbldcRnlbcPB/Rwjc6he2AL7DBhhWDFd3RKvzecIioa8QYZbjn1aXVvnXVslBZt9yfwKBitgSoLcNqFiByfkG9Ai4gOCNaO6NXnelbpsKSOLh6A9TgZYv3OZKFBJKYaeniIqh2jZ3DoEXbc57RX4pemP4mOhz4UgStvCFbraJxCBF7+gKVv8i5hK3Hei1tOVGRsuqZlV4C6esI3HxP+o1cjQhCHeQIwAfIvFYJOracWuYQlvbz44m6pG4xqQUjDDIoQ1TQcxsFD3hM6hxHuNhElr+UP7EzUVffxgvH1dRJPQ6slms+WSqh+hHGvwI0VP/PP2mUsqJc2PDzJOMszBa2v68barKpV6nCK33sKTFbjsrAM0oc4Xt9lpMbO0gMSxoJPjp671SqRSLQrh6Edl6ckmNII+xBOwsSf+eDnL7YpuoCDZ2tTEd3fG3oFxf+IgZLAx99MbB1p8wTUaKRO4f3iEr1RgwgwLo0STtQn8dCUGH+HzZj3qbvG65qwDAA9eCOVq4ZRBWZqFklRVZ4+WBuK2lAabQHUftpcgv4EEb/YYUOtgC0dWMDHxuyg2sHRC9YdCNdDyfCfWCMPK1t4EKPBP6f9uPYbpb6uqpzCvzsLeFd0SVO/S/DB17URX5BGGDqqsaCV/75vvPr52tqx8/wdK4JHiy9gkNGPe5bUzwVS5oVjwBn/cH4A/9MNcnmpWacCiJlodaVwIPMAgplp/Ua/M6GSUALlb+S0nb0SgO1dToAS2Mmmnj+vghfC7X8rRr3yE5QJDIPI0J1uINaJnNIEQxh5X/L43SpPbaBACRAeTO+7w0ao3/D31GV7X/ymn0xEQvfhf0Po+hEmzxGaxivy7MDWs4EnlhXUIuPlzFVvl9ZlwHsqy0rBAcfzwtJWap+0FOESwDbjLGl5htWIIlswc/ffL/P/Hk5QG12CuV2pvBEMi3ohdm3mxuId2RB259kQb4wUjfkg1xd7+l1MDWQHEz0fPBd/19xShKMcVz+1wcIJJDt+GEjy2XXc6YmsjQQf1H6FwWkRqsPOpxsQZYf0qdku0TwWJFAtoNvbEVGgEvmSsfPpIL3q0hwXInJ5pAeCIg6GxR4L7NbyX0kJWmhf0XBL6aKooM+d29XbASE9tl/FLUPcVsSFVBdm3+G44790Z4sZzfocqNXT+d2IAf1IqJ0FLxIwWyGVdefVuVZBCpHDjLAEhfA4rv3WLCDf1KUJ0aJKMP+zHKRskA6CRD5i9ddTPkEGfDbFIOT2WU03bm7SQs5V6zF8/8xddhd4olDWfRA4NORXxsGdma5hvU48kRsnkBLnVqRKGgnCbxqxJ6/P8YTO5lhHuYoumIdDa6s5L5/gdMgEPIVpCCDEtGO10LwUbpaKwmRoeoGsO/M1H9FpVxZbt5AtuKICHmwvrijwLRixgKW+WTm3yU64lZrcdpaAHyfHG1jZLo99KP9/89nYfZgE+2du9gRDM7t/iAxcsIhCy6xoum7msG6KQBmUazA2sqjE5sTnrcrn48SJkFzktJn0RGt2A+caIvWPDBjMqx4Ufw2a7th4/ICCpSyH1Iyx7IqKXkY9aNE6vkZt9tm1Uz4XylCR7U0h7oQKX0qisEqGeNN83H8yxVAV4y1SD2dqh4ZBgWPfJkz669hrfyantaNhQdJbIPo3wWTAlcHFzceSOua3JNx9FMRKueLtT0tUW3HU856D5eWs41C6k0YD8AG7XAt3OmoE5TUmalnM0vFqm63CJpH0NArhJA6OGRhRQW2PSATBGWDD9vGV6gha5a++qF75xwB/XJY9BoSF10bWkjBoObeuvI9oHVf3J2WYQ7jACSBXfbSve9K++ayu6zlP6PSRq23QEntYDApm+KlH1jIvfugVHGkZPmjjmxENkAaTE8pMXq0O8k2GFM3AkhKh0TP0Qzr1hARr0wGewy3ITNEnG3Nk8HqemxDuveosr91CaBJRhJ2UZKR+qe7xNOq/Vea3ijosqcuJbTtpfirSMQ8tpDY1vgZ8sXh+C1AQFx4822xxTF7YcqTov9NQgENmG9uOUFrwLLPh0ip4qSCXtDIdwuLI9S0yvtnIkwGQNY/ga3A1fn4Fi92sg5j3YhM+zTf9du3rIZFUiBVVN0zcDMnQsH7Znd2Q5lRHrNQsTR4GsXZeTUsQxbdn5mYW3SGigTCk0D/MvFp9MFSFazuByUQ65OkCVutb0HgtsYjU81z7Hdn6KDUyrPfRR0H4Pxf9inX9LVMnFtPreOekIKapUlerPjweFQXl2v+1W1dXqlrS7USuV94Gh1uG9N5m27gaW682twRU4FSi1VW4VysGfZBLrFfLHzHwHsDInkVg9JwcQqRsgBStjIf3TgMV7V5HzLtP3DvwJC9OMn92ycasVYSITzF/7NTtCRjbXeVU1TFETxLwC6jvmrKP4DmMbd3NzIer6fgU0L8HPZ17EvKxJKBuvmowGoIp9TxELKixAYnjpZNqKSZUYAd31AZ0SrMaZvZXGrO+u9BTcP54+kSzCziuittJuseC2wyZKvvleJfEnd7kKXRM/vYrW2NNjFvgLbkmHNjGCeeQ6Q6Zntdtp7RC3kpICaGCmn4rzUEMryMNc0d9aOQMV8nUTp7W9G93/Xrjb6g5U5HSvGof/5pHuLO143v0a1YIldYQqqp0qbivtnrGZLWfJ/wtsLS2dPYqQcyv91XOPPv8GZ7JVM/xdIDe9JzI97w0wcQMYQFu7x3Hhytb7SGdEg9UHdlInueysPDi6YDbHHgWstfjmQhThypN/sm29v8171HyF1DV2pfqgIg6E7S9255d9FewGL11jfoK6GQikN8gQ2uGazRLVhbOz2ZhoPqjDFiu6WMlEGdogoZERwW00LgIe4ZZ4Xwgg9BKBnyQuFXlnLdbT8hoqt4lCv8Rek4+AEub1PL3tsZcnh3O9wy7/pUjg2OFDA6Gbrmk7g+OXMwPnqwxfnnDB3aiJ8ki/rZ4/KwEG9lEAYFLUGtnEQx+OX6ppWnUej8DpbL8V+7DN6hjzZgruyNbDPG3B7jxWyXR8o6XjXrPNZLzE2OTrJf+e9NDfr/I5cUlC0b+Eji3zRlkaWPSGyn4QJ25VAEihsUDQJrnnxS+9/X9Jz+ydQwqK+wVbMCt0haL4PWo+gPnB/nfPl2oEdF/kJc8TUR8fXkTMITGLvDMN6YK6k4ZM6EgHrXAws4n5obbduOZ+bKzJD3k0OW5oGVOMlbKWkBQOtFCwg/OStp14KpNBeIBlCwXI81sg7sCip/wLpd+O07Gkz1Q2A25j/EYOulC5/ISL3C8p9jUeQnqXn6yZDGOY7BQEVFpdcVvhQCvdbjxaynELytqxBUfjfC6xO5386zJzrA7rWW/ycPLEQmGkqy8VPOLD0dQKNSA2imG+RWTwp65b2g/uzsrXu2qBsAG/8gV1AJ0VqhppTQUv11fbi6WiqgKY3aDkStJu+ezu8o+MprHFTwM2tpqsDIxFGR2FS5pKR/+62wYOkhVLmWiMAwa942592MjHQmmmqlL8qyfMqwB+00gx6U+clJV++hqkHYIjNIX3klcT1+wVtPutQPLmKYBKJdV9zr57Mzj3tsAi7z5TCEW+8m+iUlsxc6yazTfX55RyITqXp+pQPh0/FdjuzVz6dh3LDDDDHNFcdUviaCyKnQGpe+6xPbZcXIIt+XTDYa+s3xD8El7ByzzjKjviucMjrrKmvvueLdl4ZRqpRZLL5CgA6wJUAMYMPUdPDA1ph93aD2Kui0YlRXsd9DEBTWUcRnqToJO/wKxlsMMxNwPq0Chp+9/iLPrMV4mj5zoFFV8BatYzA/aO54mrBBfHlZnfuBU9MDZt1bi9+7ABk2evA6iIyGShkNl9D5Qu3iNir52GXwSn4Mx5kkBXb8DVp6e7vnJ+fR+SDOnvpekrVE9GglfzZgQDv42Pb0lF+RbULKOZbUi1wGJMMhJfSoTVhsGYyWe8vMSsSF3Wk0/MNGhl605DdQfkcWi4HiRLenxG+9eOYMm+8jIJmsR9KJZqmye8u+UJbMg46OSnPPbolfwQv8ixEHIC4tqG+vKlveK6iR+yf0PdcekWwhetmGXG8s0N23wNfFqVC7U2MMAjEnRUrvXry294BWXBBoZ5Gc3CSHg7esoftsUMzVm+EKGHWtDQ4Rdi3h6/padGp60TpurcIkifFN3RR/gzt4IMq4v11wyE4/ZP8yTxuf1LaIzL0Es4OQwAJLN8ZjmhsuqB7VSdelgbWbs9RnzPeYoWk3SaGQAzS8k0YfR3yKM7aB65LHpn37apInu6ozJdgtZGaSL2Qak748ocpgiv9t3/9wREPCqBvmoNWSdPzg+XQhTGflV5N8cFWaTVc8xXGO9BSLaVrQJl8C6G0jBfN/pNX4jEla+hl1KnTxm787SsrForqJ1KLhwGsoA60X/I0pB7ul4byQOGknsPYe0EaU5yyuZXQiq4SXSl0e5vBWa2TWxNWZMrA9R1RqFDHAr7Z2f1pDm19h5knyycVGGs4bg0L7oHYBxYDmAzfslUsJVrFtu8Axlqd49IwapEUJk/4nw9T0xmRUZRi+LjFB0JV3I8Gdby6yiXBcjA9bB2rQbAuMq/5XDCf01ttMSaq63DyXaklrH+NvOFSrBG1nOzA9dem05j6fVKjoSbR/otEL+OOGwii+8apUCb+1PveKQ4s9oAqz1mwsW+SdQS0xnVw9rJUGQFljFdgaPGoWfaHfPQPXFmXF8D4AJNTcckmvvYXa2Iil8hbqr1OUuB2mbqRwTnc1YXALSGFHJiOPF7iQgt+oXId1dgUVxJ1gGZx+4wXk3cspHy3peg7ieRHYZfE6EwS8W1zobpO41XQb0y9SV9nXgzcjZBifqvnExWEhSNWwo33ATOYpDYAWzaelZspwLBkJHIWWI5WVU9CV7072XGwWRG8lFlJmN9VsAOhYrwI+N/FAn0jExzt1TWyf05A139Pdh6ZB8kPrKQSHfoeJBlND6xk81CpRfTKheYe4T7WwzLqW+FvvVA09rIB6Ydr0e3KLEe9IGAv/+IFx+cVig9ZPhKaUe1ArrJL74s6C75c4jwbIifqQ/hf0KTRR7AXokBpPH4Psv4wvmmceivAseQoVtoSj3qx2lqakj8ZKuv18VaEg4llANY8uQ6qDfKycfLxDgGjITTngtlxH0mkMQy7HJhDa2IizoNiNH3Yv6YUcK3K9XklYmP0Po6L/VcTpcGr+ZWRhOp/wqJZXXttEADvFSdGrFLO+FPsIVL5Olt4AcC/oXj5mFBJq697w6GeyzQgRauxqD68qBq6RPe84qA0nozrVQ7R8rkq/Dk253y2u0Ta1K4Y3OIuPYvMF9EiMnqlCHanJMJ31paPmslpHhop1ynI3A+g81VtRfr+TV67ONE7Qm561uRQjzVoYBcceKO20rutEl5M/pEn1FNHRpdAO/E2S0Idd9VK+xDMa6U7eUpcHkzkgFPO5Sk0YdAzYFAZEfak+gwk4n4UnPKW6XHu4pSsahOxIiz/fMzL7Qo+pUOd82u1usrNZc8wTyJ9OYKhOgihDWjeV6UimcdyAmMJ19wDmSeFNPjAe6jBVzaCVBihcGj/2sqvcjp7zTLwnT90ZJSQhroH/xpd4vnZ/par3uVNia9/fih/Qfcdfoc2AyCn4R7Kq9JzHn9IIxgfZfOp7HplL5qASdzZ41xvr0Zds4FZwmVNlhcVgKY3EJfSKYYsc9bwvFF1oQO6ZfxgvwtEQJ5oW/eh/LIM8Ef0JYaRDjgVzb/GHi1ly39x8wzlOmsWy0+MCoH9Wf1Pr//oDubEgoHwHPwaNZTyNk7K/Wo6RBInGYJffrBb2JLIXona8EIVSjK0YNaFuNx6PxR0ZmYE902ifqNJGEPGsy2IiQwrgzQrIyP+3bc1rfg/E5k5pODBQI0s3ve/FODxb3iMDHVioue3vDiKVq5rrpA4XsT9w2cLytGnMpxPUGrTP0YPD350aCTY19I5i/akIH7eKgUXnJjiDH/YD7chK9u5QVdT4s5UNOG4dWGPkrPj49HmpdDOw/tsGzzM9eY4+idGXSXGDN0VG3nl7S03yvlF0lvsyx3MBjMzJHkvN8cj2jAJZ86OxiF7bTkG1sr+s0o9gWK0KSV7U08rLnKWUflixjXrtX5P5k+EoXIRSpg9qGk0XFuq7mgqmRGoeD3iFgt+o6yXXe2KLhaZ/yf1EXcKeNXFbf09QOjW2ptgobXXEy6M9Wg25j5MNrRJNtc7dif/MZpIovfAiagosNvEJOsw6VS3BjT+azqZ7hZezU7qhmBkMLKeWCNbKrTfch/3OcnkA4Whcksh/CRTvzWwkDd9t/W9DrLHqLSwS9B7cZkMmM2iIUwRVux7BR8xbROa8B9zAnkUto7Jphqnkg1v3T+bgXbNGwivHl5M4Fkl/w+DvL9HygDSpceBrc85nEyvz0BWaMDgTfV4tvX0H0YpSU6AOuweRqyYzG3NNy51V8EmQomqbzLiemqc6A5P2g6liVJCc7qawGcMO4kQGsOCFtmxNlZMY7ojuplV/Zj0dr8vP7M/yCw+xjVyTyscmxm9sORl+b3R5HapSmVl9Kas1s5KteRVQr+mTx5L5UkdFKAnOANqS3AKmfYQrRAc7C4qid658qtbGV3qMh/sl1A16+0seDvvFemm4gWFHbkxbWfKqQONoB742sWxsdIua2H+6s/i70j4liknVfHYG+p7B5b6BOvLfd7AZgQ6N0040eCTAbrnO2qrKrpu+y9MvtdnLLDeg2nPce00DpfOM4lAMntHnM0Zuk1pyvx7ogyYLVcPDszW/cfKO3KOPoyZjw5Koi/kRpHzkEdM66HNrF9lO1HENfn8SYZ1jGv+lxv2sQigFO+YqrvIJcov2S9nExPI9ZTdYfEcsnUlZUFr9mnWSAX/coCK16WhHMVCy3fIS2lLQTIjbq/0aORk/I/kM5jptBTlwkRM3KrGxKZfBjJ3ulhwxevd9YeGaNgYPrT9XsT2f16XsHOTaQJfBfZII5kllAKtDuBM6kBVoLABZI4OSDHWi5D8SF4vhABrOWMC2KLPvD/GNAmwKqf5Z0e9OoQvzkZM66ISlD6k1EJlPV9/TH/ZNVPz9hMBXeRgVIDl6E4gRgLT2m5u+FFsfp2Ba5lmRCX6en405T7FUDghw4RAyaB8D9Xg2z5HE02RjuIQjQqtRo+TKrMRCBgBH2zcFScSvqEYwT2xhqepDQTsKCZ2EbyYY5Gur1WxNJu3EMbei64Cs03lCea6MPsFWm302f7Knfz9fC116buMa/0o//Sh+8qrqDi5FD1LW+EyuYdzFR9N/40fphSuLCGdoCvYZUHqdh/M7+LFX78MnTrDcJfYXnOP/7lOkzFt392R1572WbVE4RUu5bPeQURnrWXa5M1WJEKMDMqT7UHy6HxCDOuxwPL5Pz0Qpb4YHClS3QUTDzUtQOiKQuFUiCkRFPidAcmS0CwJUene+KobwWV6BDYQw8p/xaRglqfGiZDjEJ3hXfb9r80r9Z+z8+osp6eSBI33YSNggoMGdMsBhNypfz77MbLH0+sI3scxveKlbmTM0oy8Trj7N3eVrPaCNmdvxHKOtQtyDQT3HITGYc5we/avuKAPyLg+MjXCxv1hD5XKXfWJ/rxcInsOXke8ZN5sevrkD3f+rm0KFyAyHAqm5wLG500zfYrl9FNZ/3p5w0QP8cxP602GzJ5atEoWV1FE52FoMKfQhZUOP+fY5+LRl4abW25fJ3AV0P1taX199hq98ZS/PM1KOYm1fmP07ppqXcjwQtJqPpPSjZxjMufFZanUhCLKLTyjptkzXfiLTCtLjIpd76fxJz3kQtKCft5zkNuQS8k0htLbT6rUvZ5tN1u92eXxp4H0plPjubiqAP5FRytqp4XhwMOgRq+Oz25KG7mYlLF1+q3rmffCsMONXeuXveaR+Rvbki87yA90qZGJP+uFuzD4ziOFuedPR3WKc1wk1tzj/ZzLvrjQYhjNu44QKTENLabKGvqe9vfFc/144HdOPYUdfaL9JO4Gc4GOumEQSpR9e1RMzU0XdcO/YxrK6dXcudowyHF516qsgAwaX5uoQhP7rIKXTxgN0/yqIH1mhssC5Axeo9YyJkgbTfpAAhxqgbiVmEpnsuHoSFJLUfjcmmN2tl4hHEZI2cdsMucNljtpvyJ9ede/JG6E5MoR8i/Ip4kMAhqYQX+41FHDlNxSvs5GUJewYoU9JRz7iQta5a7mpgiDy/EEE8DV27a/x8/H7jTMXvmxdwoO9Ia6LVXYpGenKlV2T/5sZfr0W6BRHaKU5t67COqE3CTrnQI2vbVB6bdueyROhA0LGWC0khdL5E/pEHwwY+hNH4p9G1lIjlH0jnJNYIH9JAIJDhEE/uFyS8CGXzbFAzFM44KU8Hp0+Hrb5cLpJqgafqP6KqQe6iN7ig/vOVs7UxTq9slPLmd9flqM2VgTz4LRIFt3VLyehBX+9hVJtzUQLd14y9z2KXA+QP81JXmFtTGvnhdRqunjBGtFuqOOzcxshOBeeUifgk9sFKPu229kRDcyFfHowf+mQHDsgzTGvnj/Cv0TW8BM75aOce/ucTjbeKO1JgBdIU5DJIYMtCzZa8B/FUPr5/iWvEfnorRev+fqkz6pm7u7SYxeDHYQEx4Dm/zp/y/UN+orHrfwi9z15hU9UbeU075EnlQMCmQmcJhHB+gUgHenKbqgooVqRxb41FjBoroDtN3woDoQcrmovS4YMTFkpGJ5qPBFFfvnScUcavCKC/lYxpxnScKE6lDJ5mi0XMOEUsH04/l+hsvJYWXDQbHSf/hf4blzykmqz5iZowSmCGDnNL5KQQZNB8y+qFlFknASohvNvPDHI+GRUHpBdttemsa/9yr6VvdOJXU7Mpvr5xDzd2qC2sFt4GxW0lyT5/4xq4GjW3HbYl0Q4jFbEPmOMeMOd7bsF9RLT8ictwKL5zAZ8M8QxWkB7N231FHqvabNsd6lfiwTI5z+IQ9zjI7Njd5hRYHQVyWAaaWeSkTBRZ9QLP+MRsemxAaav1PrKE5SHmHqCJ4AF84sWCQD6anzJcuwMi+Uue1Cg1bTE6bCjOryZ3WFe6i8fH7UgcA2tU9puK/rciw7b7uLoNRzydM1rC8tUe1+LMjiHKHOP8PYqGkRL2bAlRy4+zRZZ8Fj8TQ5lzjMKi6JCrNOkUKKg/NG0IPASY05k1MlLUCkgWKQu9fKqfoiPfVTxJVV9SzYSE++qfChAY9xjrost7GBBR7738F3r4OQxXFTcypdkxslaYOnzpKFAbPuk8dDVXrn9RO0KMfs+PajrGNR/BlCRIVrHPbN6c5KJo+BZZcNVaTWsPuDBH+6BbsMQZBRqiPWBcTZd9dPQiIEtTFvxGwjQF738Wk+6d8w/YZkb4L/TcOwtqSgtvLDPSc5C4t9RgbKO9uZW5b1kLoOJPc1XeZA/qrrIqzyQmoY6iEe8QK3Ga+ZHNqDzugImq+G0gVGJ5bc6XkaLbP4FxyrvnG5V2IRY6ZS9vckQf+ztXiNj8fCebA15WPsrcVRg16Kt2cTG1s8wQm/iDaRjQx6bgNInlQjMjmpelAH+s48vVARk8085yl/T0LXD/Tvo1XePfR6K1KT0KOaTzQ7egulLRzIHNAGsRlV0GjpJGTJp0jVjApSJ/3Aq4I9cAYmyVuKBXPXaTwlQ32AcW5YDgXaSlTixa4Ep4Fvouo/qi5iSgVvXhOj4N/mERMYrJr6LmXXp7qiJTH+v7c/fd6GedvaSTJNNkbCJNvEwTjHtmuNl144KsTVTSimrdsWpAFluJ6NX/wyzPCAazjrzYqUBfXfscWT9eaJV2jAYF8y7LNdUWi07RFZxQ3yOszGo9RbqbaFySvcWnHv9lF+OCmRt1J12RnysWHMT3VvGYdi/k+aXuwbN2VOsabfrSsM0m6b81TnfeTclXRuQId+p2BU4qAruSjDeG7okCcEzZ+avZW6J/Wzlt+pduvBO/tKQuIUnB5FZwKQloZUGcRmBPLAZJtgCuF/8hYH1X2X8sRrOtRElr6Gs9tPmMZmOZGU7ghzdLeRHzeju3BznkWk7CW5TvehBubN8QjRD+ozn1QkfoF5vJnWQyug/nATXo296JhFGiQgDV5J7CNNssiWLLg+8o9a1SgATw9gwh34fEyddYNwDMsVvrj25AK1ZzMTEo6JVzfVWRI+ezJn+xRNHZVT/EqxICRuxUCfGgCi9Jdsb3H7p58ccwQZbbnGoZTW/HboZoD2xnUdUxdfrd9WhnikrB9FdO10Y1g09lry6QH3Iog0MHFM56eezpw3dYf0rxLTxPAz0jKEhyFTFcM05j4n1uukLeaHsjVkMru/IRKettuqHwwIXIXNx4DsO1o0WMysEimnIz6Yqyj0gLfgBwEYn1FOaAxjXN+NsCXnRFcK5BolAHp6gpilGRSIQRylnJDzI2cJmz4e5tEBo+Has+eGuR04xQsrjW3zO2WzZvm3yzM40cQv/YXyx4et+x2lfZnfN8R82gzwywmwYD4lQuLFfY/ydk2lpTygepXaNNV52Abt9MCGmeoZMZX3h5G/X65/Fh6dwWCN5L174uIo1mz3SPmgEnFVLUkveTkGeanssQNRRLfjaUzDKBdjatON1k8Rvbx+bWWNE5yAe910jmzfjAdaeJlGQyMR/d37UhP9gFMf9zllO5ERC9Fnd9BQqvRRzusmh6EN3lZ6zfgELP0EmVzEwHxl2bQMK65vi0zWCUSDp4VFdpo9lMfrjusZS9suDyNeYfp1lXXLI8NfUi9Y4pyP0ivzRKQ2xcw9otUo4CNaxkPqugNCBzlc5BjJYUH+sjJXHXzVR0+zOnhxpt5hqZTdA8g4rkWCNIiTAwEudMl/OakBM7+r6sqyzHcKNdcbarBjDiYFN2WKjaoofknZy1YD6WUp/FajBtVQVZs9Z4z8CBXd8Rj1lpOda31tU2hSV+O9L9O4f4mD2NQCp9aq6osTv7yTDxhJ/bVeQ/ev5E8bfX76a0CeMYHeR2q/jqvDN45VE1UDRkhA7d6EUGcm/IMDtFvrZA2bse6sWggtcB34/D5HwPQKLwgJYbUgeP/HICczWKrpIbSuKMsUCAwHn67aXgkFrB9ut7moT4MzQM8e0d1AV8FL6avU8DgRTH6RXAjOmwpttRedqEp+mPD/ZJ5FXBxiuzQsBguv0Cez15PdL7ZP28T4/Z8HJ9Ih5Tj+FegsVUB0PSBBg8Nfqb/zSImgG5CS0MZ8P47i3LrCyTbPamo/GQpq+0pNQgKjWvq9j4h7+PDT+FOcPETNwJC6kUGnd2F20P9no1lACu/pvtx12GFIt1vsNT0UsP4i3r5/thBF3RsFO+9Tb5kLa8EH7MQVFFRihH56toDzErnKBr64wPid+CJ2wmFvClmtYC84AbcxJDVA/kyEFGsjYP3KmesDAgHZKITzsOHjciJGU6gvg1RGEcUBnejw3dUVdsM4VEUhVCYtSjvMFxARowJiOovobbyr1Sjoj41rAjjPVpbonoc8PE0zJI4mSgQXTYGWKx72LbKjAd8Ma59ld7hlhCcPDks8v/Q3DI6BBTCiyEr8iM/gP3/AnfPYEHhl8LpTIlmWNuR479p/2gqzAGNpMLQwlC4kE/Ka6ytPmZfGO781CaNzQIvE8SHanamNydQXWEZXaI+HbgkxJ/M423/7/BGPrSAQ3Cnr1YvZDjC3LQXgmAve5g0u3vjem9VcZAmvep+Mf8mQwiBq6zKfy87fIkXn2pSqeyXGsEJQBNAOEa2GuLG7hOZFwd5yyLvUbNGX48apJPCVFhvtcBHuMxbwxgJKj2TSOEg8Kr4Lgv2qYo4XqG2qq9NOXyPeoJtn7P3arIWnOIk35pOeo5FoMQbiJL6DPo9liC3NtF8upp4psayFmaDpjaPEmtrlPn5lzGhw3pC4ORFaLdxahiG5kKQa0wYZ2/HCW/UCsflN/KEHg/64aVOLXWA8KqrzOpoLQwYs7dkJN0wSH2J0VpO6+SArVOOkFr8N9L8KvWzAe3chkcfT/ORHoeTiEYud0r3z4P//oIVsHkz/YjYj5TFCirGnxHmbtxs+IuWrTHVYlkv/uXFf7wiFkwVdYbKp8aFqd42umH4rMe0GZlO4RtEEam2Ta7PYntd91qbnFCcJ5pvp+5gX8H6GRQgjfhglKxQCITUVM4eOf4QDbfRDGwrifo1jB9Ibc7ockNGRv1ctba7xDje9MX3unDUoaHhngHBhHnZFusS51CSI4+WeNZCouMBMIx/alzgVCkZ1Ozxc4oGhHWUXfX+hHG3vtq7VFtFTNIjytVAzJzv0go1KzSg/Plbd6m3b2X2ZnJo5DC0fVwbuLfo4zLFT8/SAv04XxfOlunhAx0drRO/IXA5uzPQwQqAtiOrcodfZdat5xfcYX7SskDF3171R8P214v5/ATLSmADDd0sFAlzIvZuXZlD+tMNB7pSTHCAuwtNXdOyUDsGclp90sng6sl54xJqty1qkoqhQJxTSQNUhZsu/UkwD+rGaOo+rAM1DFOiIVooiVSOreHsWfLLgiZM2pZ6qSPM+SawfLAvQ2uaXi1SLNhPgT6u2IbcKo3N7Z/Al7PXoQbNnEZv6nHV0mfDQUbYPh7A7HdrxdoUT9fF1L2tC3pStGvpca5YIBtuTtG8eDkVQ6BdkipGBq52NBDl3Thxkf5vZCF6gISmmPxq6KIsEAk3ND7sLqMvxFlDyNyB2OhuKq238bhEhwqBlQ/34+2P7S+2q0DVRt7zP4Zuqncg3FJ/eEDpCsN9aHx/K1hUdAdmzzdKU24Ta4dlCOR1tRciAIcVGN0fwhzGL4xEnyLy91OSlFw6HlnCn2HYsgWVFwZO27eawkNfjKMKxvFB+7xR6LZP8dWDQ1P++OXguDvbv83xYbwsP4fwCwV56LdyCQ6G11CoIoyuDesr7GAMOr/407j+RGOECiorXq+BQL4vgwsnF56lm4ASCh+7iHfs/bZ6PFkpKJI4lwOlr9y9rt9057epZt/e90w/VJ/ssGK8aEFg0SQdfxJ7BzBnEGg7QWygC0LmbIp+wNCzAphD8365GRxlHOams2LB//3cgXGP5MxkbwQ0QtWwseOuvA9xa9XwteyQptd9Mcy/J2KuTTo88fc/pH169ZxvxSZfWU6VSbrn6DE2YkGsD6jErQc4MFv535woX/QHiGff9yVMzmHaBSYBlYrFehWeUstzbLw8k2oxNtabynL7zuYUavmKpa9PjagLVGb5+q9Jw/BgUltdfoSCmM3jTdIQGqH32GG/5Qxr8H06mz9Ut0AOEEX7VJTShjFpNJJg9i2stf9QnBnEKqiCQIcoX7ZwdiwxHszu5QdS4NO7NaspEPMbQba+9DWpbxqmWQMCfExCbA+AlvTF7i92BKjHgjQJUyUTsDBinTEVzGUC5KZmhxvb0S/nc/rd8jntf7pmMp2kxugwxE1qdigzYVmXn8L+c14DCWUfTCMYuLWzPIYSZBCtPaHtU99uApxhBkBjViyq3lLDgcSk3PZgEtJKvcvun0BY9u89rGHduIvZxdhZrhP2u6kxybOArqH1QgTRZPcmHDtiU4yPc8awVYq1UiiQx6QCizkh7nweuXg61vMY8CYS3UUUYmjQC0N5lPnt0lM0Kl1vCh1OUbG7ck8/NsOMn8Jg+Ds9bjijOm3X4xR2uQPvSa949q/PRo2UtpUemfqSEKiq0yEZUBh1eJoIcl9wOelfnAYtV/K6zt3E82+aGjO5HNhX3fyusqadFZ2vJDzhIbPKNUjXqUqRHWb27gZhxt0EOPjmUUvKF7svogkOwS81Nn7KfzLAI8L3xltn2j8IbFE+SvujKn9AgQMUT4jfnIOuKmQ9Sl3b4AO+cndECGA+aY8GZQ6jBlepEQPi3nXX1PQew5Pi0JHlzxbcO7Hxwg4k8f6m5dq31yFvm4W7VDAyq3HCm6As7vspz9AGd6Ramu/RLce8TTPFxBahvjbFo/l2wqrQNsfUroF4IpXychJZ2qgdpQaeqN0jgdItrck/GuM6OtPLIWxppzDtoO5sDp8oVenMDN8UOh97qW3rIKtEJd9OJLnDHZVnuHfRx/MZl9ViAsx1E+GnhPA8gXsTdKdfKfaXWiiBaAQkbZDwV7uO5a4nzlbJ5TGj1h6xa7nH1ILv+1YPv3uM6I1gw6GWBdSMeweC4ksTGtuvE6Exxcya7fAwzZkQP7Qjm+lLkRtnlr5OxPHkFu+n2vvUcz7LwRmXhVvYCXQcZcWnXLxAT2WN0c2U9ymuvpiYlAMZnXJRLL4Ir1iBGiIKXq1S7rcmy0Q6e66+9g8alG5xwAb1Lzl1kaencsn76+pZCz+dPYZzunsf2nQ/H1q+xmkh9xb2JL94hLusDYCkwj1/378A85uCuzV75+WPSzCNh5k4IkPC46h0mp3yj4/18dATHXa51dYZtpS+ouMDw9YOXirJUMD1fXwO1+hhQQNOBgHyJo6iqJlozVB9S58Tbl9440C8Qw7+QBnPyH0oVKd7oK8xSpYVcV8XJ2JlHRNaux5AkGbbRMCy4+H4C01Z66d1w/OFkJfLHqLuTOoGUlwbnNpa22aJpxSnBUQyaGC9IfHS7bHuwcEX3cvjasqbH00XNJpm9u+jQ0n2+9kXMpcgkSBU84w4bdeunFJMLr2Q7kerg9WS4RUdCt82o+/QI21ebyyj373SIjB0T2vsSkOEJDRSJqt3belw6FtjXJwPJzWC7ZydKV0s3Ni2rTsWu8zeBzQ2qgWsy+nPbIrSiMiM7a9cjISlejg6qH+vt8oaC6AEkzrzKllY2Obs2q75PLn0qAwJ9no0s+yE9WbnxcsjzE79jN2oTW7hLeVz5qThv98XQ7HNK+MsHobpa7rYvX9VIs/LVm1AfJJq9o+WkHkNaP0zenLsf17S9vELkvaFO49UWiiPPI3Ts2PRfbUqcmVGv68hNpJ+9BSSJwFYfoZTGpVjozGgJX/BArUocR1HbIonmS3TffUD7zUUVsYMa8WvgsWV2MuGfUf9tgx8eQ/+P/EG8eouqIJLJ3Mc0Bp0+yHbqWG4iOe4OCat2+hZFh0EC02DeykBHqvdHZMP7kBwCWj+ZKY7SVcyt/YyUlbjgfatkC8aN9JIlWlEt0giGpgLDd3TxwVz73EhyReOkdvgJ5rceSnfMt5tvrgIJT8KOu0uSKG9jIACedT6PlDzufBwSZvyQlS7QF/0Tl1+NBuQBPe1zfshfst5JkYpBRUhww/tuRvyf4t0zyNKWrCScVuiiD4AtXjXsJwl6lSA0qcq/gRApfjSTDbjPHnB1D/RAkupYBNnMf/F1cd+HUMQTGgMZgAgTr3jCvSjPz8LXj1fOP1qnQzvjO2yLPUswnnymm64+n5eSfV3XFkvxUyJvsF+FiJRh2c/Su1o4fFoBtkzHlk5G5Q0WQZwqf8L0pMW2UV312DytUe7hL5icxK+ZLGtNumrKc66dwBPuCXira+bT4GhJlGU1CnTqRBArPVdoGecWSPqc1yMSMNmxQFXHhLtgjqJAhUffmLGL+Ergky8OtnyBW8csAc4f3qQLhv3QlZKgkHa9IgArncCffr9Jlke4OjiQNZGywBNeTWvNv0twkTmtAicW7SkW9qAvflTTEgWd9nr3UGFwJdEzzTGOdshD4gi2MAVLnoGe4cpuoXtQz2IHZs4UT/HbVKH/meE0j5xpg8ywFIzoIiFX6LZv/WkRZ2QgslKYmYhpmyfcGVrnf7SxEndYicUI+DobSUuLLpQYebtqNeU8INuzKffoV0SzaFAHRzf4bjQp3bxdn8FPYw4J2JSB59ahsw9wefF+mPOrvXsi1X6W5gMK5mpAlUHqi2P3Wn0GmKVfIoxtr2Ywvx23mRaVSR+qI/NRkDXEeeIcupC714E0eFm4gtnF15YATWNEyG7L+cwF2uvZluklay2Zc7MEVnrf3T87fHRQAZd+QBrnz2JiZOvC4sVR5qOA30NSBRcJnLxQACVsCQt6e1f4wYRMkzXkP10ndCMwKu8BWyy4Xlq6o09VphSnLxD6mhUxRp38xEtGL9b/9mqYq3+mDTb0mzx8uEEcdaSYUV66ovhJqcrjmhejPRspuTsvVPNQr8FMXwcZ2OKZF97HZ4QWrMJ+DpSflNRBItScasyZ5eXcAnvApESoDZVYIYjIF9pHyUmwkYeCUvWQLWkGUNoxcTrRlTGCWkirv1WhSK4oQG6klI+cGJb3ZH/59LQ4Pjj746oK/5XXhr2nme+9CTlNRyt634wCT6zJxRv2HVnSELH/2VWzLBPB5AYpuu0a0FXq9up+NyuFYPYLFyKrsl+SHFqjsx/dNuijpqoWvIsSru548m3PUnb8BUJyktgO+sNipzW4KBzMODAVRXL1L1dyDfeVmL4vq2PBl09LihiBglM4095ELosQ/ThqblQnc01VhdRkxFv+A42S5t33N2pAIQFkpdnMFG3N68skjdah7k0syW+fyHLU4mXQFuOtV/NCHLwW8Jqmfd3/eQoCc5Gy4+PjTpOaikWzFj5Enp0iQFljzAg87MGs82kFfFFjxzeGPyTiMfX0eu6Mxg4wewlZ51D83zQRptkyIYJDd1zT4vuyfLQJAAXkuurqQH8XoTSfHSbXKX0Sc++kv/5dS3X1ZpjlHzBiO2X+FAjKYvyyAHoGVkdlDQbb0uCW8bmBIxIokWyz5gKHgQICUylKMqTSAPuGgjaeYDtR9IzH1ZtwaQjaWAbMMOuYYy3CWWe89jrgDYTkwH5cB7ty4mx4552DmjEDJEQVgN6cmW9EbbN2Uk5fx6d+BOtEAScZbn73M+Qqz8oLR/LnLtmJl+csNLMVrzZ9syuOz70xrNz8pAZMY3jGpts/prY47pSbwuoZXOUjX0hPJ1lRfl91ZciOxWOaSWq5Y+XOzcUbxGMwpeSe8qdlMoVNAt8U8aOVNQFjYF7pkMIC69gaeNoV8I4dUg7cU54MrnwVq+itwuiEpmBf3EXG441LYPOBoWumTaCKoDThKru+eK1aYI/PWwqxXGJxHTuV1hA9qJBVvp04GwQIks0w0fHUEEnflCv1DynIcBkVC/6pzi+xv6zk1SnK8oNAB0l/liQQeLFMkBsWCGDavlNN3rJ6EniJMRgj39K9c13GtYALcMrkrlqwm/mqP6DrKqhQhbAcVC5bRM6CwloiPNJlbBvk8Wibwkfi+fG3fccufNEf77YbT/eKpy2ZKT8KLj36RupGWlfFIc2Pr8B5ThvQggnFgS8szv2LbH2p2slvpjA2jsQAkoA+GUi4wERVKm/88N1EeR8eNQMIEeRGA05RUkzDdP1xgYSrYJuaLz5C5VBPgkqxXjfgwEIq+WPZ9DKGq3AhaeX8R8b2h0EEE6TQLbjPOssnw2NDcxbXNdmL9yUtBAskFcPL/q+PdMrIK7UFBErZ6FJS0eUo/JInm+0zw42VfHA0wBIn3bZmfeZB2N4hmirIDC29P1spYRVC3k0gtt9+b3kYlUO8tox7M3OkyJkeRxdfqFbto38xVJbQk64tsxSEcFu4C13kW6+yN2xowxAJQyN7Ikem5H1exNXpeSifZkFQKnzBZwF4BudvO7Tjw09fLty6vYuzO/1B8A2GaOokgEoZkrCcxkdBwN63X9rsYiofWeZr6X05UhGQJi3GVjeWwIrs33AlCD/HwLcTz0kqADq8Dv90PN4Xm9DPk5f4+EVVmTgsFSrc3dQzmADQJ383/DFwbPPbnES1QGj5fsTXab3qWOZIkDhuIOopQVW+29YxshZhZwSn/3Bvt28hllkCJK/E6+piON5O0064+D/+fyo0UdSjiwXi3r3TlxJbFLuDlS0P+R3Q2N+p3+4X35UpQu/U7dWblmySDjCoJPZHxIi7GEtqw4B5Rfe1ycMzi6S/ywoGtRl5UDeBoh07UnHmpYoRKmkI/xYkFvWLkNc6RSe8s1PrkzHKToOu5CO1Y+SSKeLLlkS8lZaRz341tcKBYlGmmTh2XYBsU9O2uOR/eHYoyurOREM/B1AfVlDkNE+etaLljtExPRqdRSFspTMAEQmXkt+97FzX/VqEGeybFfSD9dtllgrQE1j1LvE0KF/0G6tDNEsmeKanoBTqmzFaZa5DBsPkr63fp8HaXDdNOZ9QfRwP2Y4iI7oM2IMDirQ6ZPtUUjcGL85zyORJpn11y9yU5ruQs1XWyCtVsjlx2BVgczDq9NSz6I8voC8hr7PCHaa2LMjqCIJk4Af5d8NkSnA0XQE2iCgwjLOjscHbhzaAVQPlcwkX8K2FTHzOvvhREsIRPiL3uiH+CxmaAlBVgW2hwIHXLbyqhirTThlGFekrPSAsDe6l7TasrbFyH7DeKoqsX75bzW5/UnYIgE/YZbsVbogHlMBWsyjTMGDB4LOg7iK193RIs8q+BCI1u06g/treHDEcJFJ4jYK/jrTd8vv0kmRnmF63ABFDiscuIMhZ/hMxHXcHDRxVrJa9zgibxY866GUosRkEMc/3MhUtUrzMiRW9OZdBL8BKbpEL+WF/nzgWSV3JTtXt7/q+dW13dMGOe1ipZ8MLPv0STuYCJRBZ1z6QkT0ZmZ4bu71h4EcHPjxlTudwXvL8wq5Vh4Vfi9bjDcV7+AexY/T09KmIpL/RPtHkejHFDOswj6LnxYPGHedAXF947pDNrnTNh3MByV2ntUUYsYD0o5A3OG6EEUaTZHkEGr9zdZtfCiEftV7SEvNOK9ZDULhstz+lglgv0K90b9qdCc9pVwNdQTWCMmjEkZH/qmUBRU1DoKRkOP/b4EQ2PvTYVFwNQP7RRe4LaoG3WOSaoIfm/TgKoHG0f/dLL/ylHcNgs4ijlKAWIjV+YmOr5S2tblnCcBQbrRm2qgiET5GF4j0IogKvlss3ZPswcQzeK3dWPXNdczjfwIyczx7lmHflFMx2fpWxyQ5XVMJJaDyxHXimwNNaF0YhpakMryc59uAQNfmVIyxjNYLuXkSP6aJZWo0wxajPtOdqKlUmrHXI7Wl/ihSIteflUx1OCvaTD5GXhkkUy4cDNc/qOt1aP/0WbCoZejioNmnoSQ4jdOofL18N7lRBobn86+954edeJzAVoCTAnjwu5TI7DbX/53h3bRGLE2AsCmmVDcnrU2awj31YlgOIS3zo2imEbXmnXqzvuJtSNarN1eROZbNyKHjMKulh6M5APxJydh39HUrgj1aTuh+l3EwrDbLk62mKE4SjCbLG/6a//A4LTLQi8jU4Xmi20plAUt/lrb8Tdf+UpnGFq+aYXKZo7O3j5HVXuf0ExjrxukjG6GhqjxbJCmesuaK/aNB83Xd2+kj8cyuayM+KTvVLZnw3Pn1GVdDf0DqQAVp/ONE8GTAHrE6IvXFra/dDg7zNNK6JhkN8z3OHmXfDRxnXHv4bRTXoeTRp4ftsx/JYcmKjn4h5wyfVwqK13uhK1yO69f+ldWasDySTHvLhRkTeuA4lKWARikalhzElDC/HO+rF9a5U9G0mH7XBPbOHqWnmnvasdgygytrnca4zxkYqETGbvf0GNJ7W/0jAL1IvUU/keE75SHANsRO9+c39D559SzHtcLU2BS39dmQrGRNUIkfi+/dbSTRPLA2FG9WZYp1cnsX/A6czcqWA85KB9qIW0zxN/J8chN9+hARNMhRXVXvtsSHwHoUzyeJR85LfZAxn5EgnSvsqZSqtsMWm/i5YLYrIs2WF2z7VrbvPf6uw86rGFS/LYHWSN4hv/3N6p0ytJJkahT7R4Ah+ytWsN0XQqgSRMaDLrjS7WV5NboHLftfHKr5wpjyqoIh1u6jY7MTuFGudJ6nP7IsSIg9mdhPYclQRkDgcSE120EyOc/NL2xLdW6CQBKksr0AdfXYmh6OZ9V7Qpi2gBv2KvqnC/HRHQMSSql0RZ1fUn7di269z74ts8kEP5Apk4Tl9tDTsKqbgzYi9ipwn08E3GtMKtPoAVf9BDm60EBbxRHUyaWf1ExlodC7ZKoeGrD8UzkulEvPQ8u9Hm4Ul5QMJJd+0dty+SvDNQ4oqDLN6TwZ34bWDz0aObm+g4ErppYZU3UT2htL9qPOO5zSTNHwraHVFv/WjMLHiEUgJ/uoMISA+x9nECdoZ4DI//DFiqG+7jvYrfbxUufgAjy6tzW4MDOkalRjPOnv8zaoHqCoa5sAF9DHy+azERfJQjnYrI4Hd1rnbLWcXhoLVoqkw+FdF/VhgZSPj8KJRZ7onuQj11QeYZahHE8GSawRy5US9iKASk9XHkK6pNIZlTdRYMyLXmIJfZ5reH9WNDHx5RMieq0BiOLB8dR0Or6KAiRFuxJ1xPJkJoDi3HDwvI/g8/C0UDxfGcEQwwhuRqw7oeg9rtIgoahdd8PoJSzHWF/ujhC09xqYKzR76y1T/PbpWgqPkAQ/DyFjmyKDZnnlHgbqyKleV9oFxEzLEqqUeVuyZEEPvnZZqUSlXcaJxqizMJWO/8MVYBdIFzaO6MXyWKU7hAGVVnCTk8yD7Ce+0Ds46qbxn2Y7W9h8ggllHB44niQ+5nGzWXu0y8bNT/nFx8OgTnhoXYRSMDZd+JFQ/W4uSXurc47Ok92GOzH+uI6a978wVCwJ01oAw4LbtCUayOE8CNKRxAlkbHqhcWHk8I7DwGYfcqJysCrQYLai30Wkmmu/2Pk+IWckcv8kaexKuoHDjHUq8fyYkRxtPdW1cuCUGNv9yscmAK+TyrIC+wRC76aKW6p7T+iSxU2e8uLHI3yr18Bn+sHENTAly2E3G1JQZdUygxoynQq7nnI8WdB4rmrwqNuyU3F2i1hJyTTh2t4Jt11ejp62ELn6hc/ExakRwhqFBCNZOoDRWQi//QmIGF/oEwN9oxkHhYSi+N/w8K7p0434hj4ZvnIuBfSeViHbvx4eZ8bkW7Vh9mFpYbmObEfCLpEl1MevDiwjN+hn0M8F6LnifyEm17Gx5/nRDjfcDR0rhZJkznpAyGegJeLkucvotJ/XcPgo78jQUlqqPLeO4u11DrwdJuUKMydVaphVsirF539m+Y90TmG+hqa5Vx+DyJJcLreEj0oKewovlJ8LRp0PnGebdnurdq+MnRc0smDC8EyGMipGGvyJZ1Keb4y3hG9OXw27iucUPTNADqTg7niPunNdqA1bXZA21p0MRlQ8ePzl3/7XQkxKosN2W6KNuY2J2iv2+q9AcnaFODUuhoi75EvMhGHIDvCsMC4DfdnaWN4bjRlU5n1vNOTnHtX0HrCTpWtENkR66N20BK88/dy9SAe7yaLGCO6UJsCcg0FYA2e7G3Jz95PrPjKKbbUW11ZjFwUz8M0SuHyqqjzvw4t2trPcoSeiWAxqHwvBVhDPT8giY1QYbMuxlj6BgOQe7k1cr5osUAltDPoVc34VKsEpfE7jFBRbH5kGUEXVy7JKJkiAcFckmzEEwRxypY/wMuqZ65+uKNDoyv3cB14PF5hRiQeAJifbeIbqVthXrLqetyOq1pUC2o2UXlntzPDRALTGa99hmPm7H6InlO/H92bnRuLlozqAfo6EoHOd2W7tm7qgMtaOYBNAMOdMgb5eN10b1bivA62okRbXYBzIh+WIjRgBHJSsxilPezglmo/9t3jYIJcIZE+43Nb+0JaeBH2pepQfPZO1zKOcaBFHAA2jIRLhqsxIZe6mzvu0U/Me7asKxNHhVjOOhe+u0CDGL/dKf3iFYGBL45hx885jIUUk7n1ZqJO+Ipx8oQwZhFHaElLOIKnJe2CLrRcdRcj/aOeGjmHNJSOaCQiz2u0d8DEBITgl/IyjiNi5iyaaOadlkiPiYaiF2PepaXApzsT3keiAMKMTRjDEJbailmJ3es3lMpLpxcD59LVLbp1uBC4vlCci9rJj2r5H3vRV4FhJAvr6Q/xnWcqPyhtVRuX1zaOic8Kms/ZSMf9YIKFYF0bfdR9u6hEhyw0RgmBvBTcIb+9C8X0gKmLyr2nY9ghO2XdvJOM+u+EhDgYoaT69G9awuK/FwKHUXNiAd2k1SzSQUBHUm1BZqJOt0NIPRiXAbdLF8AvP2/HsNv6rBMubJJUeY8icGOkdASvsUwLPtXIyf6ByUFiic853YZK66GpRC0QaodZsT8nQQQN78FLB3NpgKLCIusx8Mgg8N2K55po03XN2OKERLdZ23kf/yDIAlHhZsW5lawDAvqe5ntYRovOKYuLLampwa0ZzHhXpmfsmtQlyVmkQ6N6g0M1Rtcc8FJ8JQyOFV6/jy2vdyoXJLag6YW7aFa3RnMt3Waem1LfKEsp7QXewFZLzrenISfm74VGN1FhbtbcPTqkYvuNCOgSZk9vDOx8dlDHFLJtBi357lBmsbQn/b21FHpj2Z7vbrcWvdTed/f4afAlCW1ayE8PVUW42Vboc9CnE0iKaqb+c63aULdj0KBljOyMpBPYrWzYrd4JPT1mHrp+ZTJ8ddaZOjNKpjTvaqHhai3ASsWcthBWexozUrDcFCnPhRMLdkmAuNNILfhmALSwAtejVCFDWTEe+8MLTx6O8dH6hDLFhdwDIGx2IZxHglEmrappF2UDOJL1IscKww01QAHnZbtrzD5BqRg99RY+JlJDU5kmRN0Themy9xS4Hc/azel7IEO3NcerRZxcD8VHrK2s666vZr04Y9/K3Q6ash8xlS7bwAIkGBfVuxvEiAVxfhdIPHWllf2i3DtcLkwJSWw/NE8ddNK1reK35HlqEadQgMTsfZ8zcRTs2hihvEYZGzy7mMmNEFC1hRmwn8i6E6+rYmcGkaFnoSjSZrNXWiAoCq9jSseumKe5roLodeFPQp9lnrEMSh3ouvpVDbFlQnYocQYX7ukteGVwNmH5D0duBQLaGYBBvoLSZ4PC3CWtdREJfEkcPlW91q9Fllb7tPGWp39FH9munQ3WrYSH476kCPMujA9ZSYl9esbT/wgM2bqCy+z5qJ59d2TilMf7Jw4QCjfXEIySZ40667kP8W2iJs1+uGN3HrwidtzO23fDCrbuUXHnJee1d5+el2JCfKUXNLFmkGat5SKuBXNZJ7tBgXZ/frouDFEkIfiXBAIykExN9uJcB4OjbX9U3kWT9F/vkXv2X9uMJteJ2CLgfjEhEJCd1+uRKKWQ0sTxHiBUZLFDlR5s8FdOgPBFL8POj0i1LAJnZsTKgrYHfoC6pdF/3D66IkkyV+O6hkMbn8mKN8KsFjS3uf0pBJchE102gr/kLcNagmmrQhM2Z9AXw1nxFTjpyLjwjb8Zm2zUcYzV8VZ2ZUG5Z/VBRJE8+22DyirO0GAyxgOC0dV378TTDox3mvQcmgVqh8sMln1Ls0RU5ExkT/U/tsxYVi7Nkva260tYY9MQnxl0hrcrTlB8iV0+2s3BfR5bf12nF59JCkpTgY/AoHTiYw08zmt3pnvLZgN8CPIFSB2XS1N+kw9bKrHkyHZQVbIBMpep/BA/sd84uLeiTUfqv/bIFsjI7R+6Oz1zlK8vwkQR5ld3YJ3ZrYVpYBwAJ9gfnUk31TrbfJ9IL+yAsipApTaUSFlb6ST1ZEcha+gnjevUw1NQ6luaZ6CFimEngXY5QOWsPcxCT9Y7RulL6gWM0UKFRZrgStDvqRnVe0k/53JtLVqy6zfdvl2cASLundXglwgRIBQFrx7GvMXSF3YXC+y9GI2cGS78hYQFWHWUqt8MdxZBBnUwshgpBPjXgIvf8bhexI5DwRlBIwFx8wxbXsMR8r9J77OM3D3aILdcgn3i5biins4/GJgn340Z8zSfrRA0I3q1Jol7ssK7VBJT/d28ukhrF6HcoDw+LZKm7gzBVNs15lXd2NJz7bnA+0UV4kuOJC3Y8LOTlCB31V7DLqM2Kyp7C5ifkA9U9qt66qyFOJhQu7KMpYR8Ls8OQkHW41EYx8X1D9xAEk8F92o7VOGi83ZEvEeV5zkTBgee10ymronbRrv2Q8UG7G6SB4A5G1B4kiffWGunUzO2+ScFuZzJ1z9TBpoyGhPNQu6Ct0GShA5VbO8OSodAfy5MXL6fD9U/Dch1bgr2LW1UfRSFrWja4rYdwFX5oJ+Wf7rPhVqgRVITXKCE9I6gUNNQjfglgV/+DWPmEzmEb+UeYYeekBHkmM0TFrodKjfS5bOlqJHpfd7RI4t9TlNk+uPnexV7RjF0B6iEGgOAQGDRbvIP/hgOZ2nSiY4kn3MiXDdQok7LbNFmnBwEIRbtYa5eqKNux4714gg/Z5F45jE8CKx1BPUv8wGfreTnqoLgVidGvuUMus7rmeS/cl35TEsJbVRv1xehsKBVC1q6sywEEVxeS1jb8q6IHEszObh1Vqfg9dhAADtBkO6BnerZQApiZ0NxBL/qGqt658S43PN1+w4lNb7+snxbJ1T3gfAaBvqKn94VYOVrhAPSvHWiyIdrRg5cy0obo3NtzRepieSXHJvaQK7YRwAWLhVE89yjVWw9I1WrEi6Ot5W1DCcICMSR96GILU/YeJKHmEwq4kJdHTAU7sdtaUz3g8iyOglg+PFLPaLvbjnef6Mg7X1I5RKkGBXRgwcNdOOFFleNzl7ZTpXWtu7n2jxwCx7A9FZmxCgUonm6WCSh2Wt1ApGUvwVVmSJ0dhKu6DNn4qYpbkH0MszU2T+I0Kh/B9dv3SIsX1q+u4tLzPm7N4kHKWtkdakWLPl0WqzV6gTD/cmjFV7EOdYXO4jDho7QY4DJhbw7UTfg7S46ZKNFv5XMLvM7xZyay/iPZk3H5mMN1v3FnCWG7wvmDydXQL4s/fje1PG2dcu4zaa7xbOk8/HiEf5X5LdUkRNKFxoHLpk66b2q9kpZCCH6Pt0rSMq/9UAIoJ8RYu9m7r+sWRPiT/1Hy9uvuxS5/h866LsxhvDPWIoXAIYNU8CvZuf/JIAe/922Ldz/3Hew5Z6MmUQOdkeCql6bqr+/V+cyRBT++H8PGmydM+veIFfW2c02db77DAaDgFk6z0SAphyg9brmzL+dt1je+PZN8f6WEto/irD83KQdIynmoycUlO/yjAFZ0cfpXINbG28l5B9UyKz9VLaAI3DmlGnu6rtkJv34sIBEUD/6OKz86rPI/LM4cW6hWHpV2YRF7fL9Bch5x0oYE1By+9hm5mgVVp38xQ5U6jJgSX6QAZRrWcc4InNsSXoVa03gPk6yVIMrpzfds8eYejb89+4l84bux0o63mz6VNG7arhlhtCEwxuIoj3qoFB1PSy5WRhXtaO0riiceZ7+iMUjqel3nz2aeBIgih5fCHo/2L/xbiiPu5otxkqKO/XEdxqIQgFyRVC4z6kUBTrHUo5Vys04YEqOCbCzX1Cc/mxkV/tIHlc8aFTG/bceIvhLEVc1x3ufVdszRlcv0Ih2fLKiXp5plMOV+bZN4gR303ZkGzrQauvQpzxU/JdioGqk0YO8XdYuMrWuRmnpk0KIRBWpHf6XVCAXR/nBpK+3qSsKFINzQ1b72f87YAyrApvz3PUDvRyQxbGJsHZP36vbRtlZNksWWYj21f7C6ZsFHAHuXPcbaGkgvwgxR/VNNxNr95zrXZj7pFeK4qW0tMA9bZzzA8qCDylef4Zvt4zARwS9n6BrK41jsZneJarStXBQl3TXefPy4uR4Is3j+BdkRBVsJwZNU203lVhfnavHEv0w9+unjF0zL9NZtdEyZdY/cZPIhEjgaEO0CkKmoeb2GBh98Rgb5NDVBYTJeERXKmxowsvFLd+GLUK4fNkdLVKUIgK0rjRIipaogUoyqESggIhe8DVgtfqNxqlVmoQOalnyE2l2Ko7QFoBbd8cu6bZvGd2+lMCvqlFwQ3um2ddN2rvurjwrwvLj5Ot58yfbzShpBvAWSu6abAaj7j374XuyK5fgMxhyOGwyeFVoNpVDdu9fvFvG5b2ThrEh8Qz7HCt3aXwrkXtIUQ+ILXOVWBxDY9BGescGItzgr/IeDSr/30a2UOzE6KSJps1v+PsM8lGUmxzUuym2jE2LkHKgU/ZTOjqzef2XxFxl1JjYOwnnO/w6CixI7zReKT+1z1TOQqJlu2NCbH8skP6WTlmdJ2tB7NFZQV0o+kV7dTcxaIwH9YO1L4Ob1qTyRymFUd1Juvkb2l33UIKomgyrwRWadOjuTx1zQglg2l8MQalxVw6nMabrwQcbThKdUgWGpXP1+xg1DrPcOl6aJ15p2yVOxqid58cHf4mv6411TElbZ0PQp+b8lG5qAMjsuPPCJdzZRFq1vF5RkGLYZ/A6bpxf+aZJNmfCPx3ik3CAEQnFRwwUcFfHGTgZGHHklccA1droH69pjWD1ujfsT5Ie4YkcSfIgWzJ3f7usR537p6DaD+XLRZVbGXpj19x4dKW3NzFf8C4azpYVB0t0fvu1qVrTZ5IQFUgLLq4E0TpEbGJyi+zXmgxwnTSlRh2xRdB5e5bH0jY+HypGXIpwjyjd319TqsR38mgSR9fhUj0tQSKa28hrH9RaiHTyu8V+bMG1tyZS0IbnYvryw+4QAMqJb2ayTc6QQkxfyXmeTlzyqktZTBF2+Q9Yfx/lnHpW6lq3dlhFKrZKbzmjp9nTq5J7DLABS1bugbd9MsuYxePZpBBmLIUWH+g9xnbxpUx2UbynbY8v2UNGV/uCmI3gkf8j1kKAje9id4ZkR+BlcEbSagJRjIutASlu6QImy01KYVvo3/9lCY9gMJmbIlf44AJXXoh8IV1gkqq20zuIq5/A2xE8b6A1drjHgRVQdsTFLnGcSZeI5OEV5YJlBhqUalQ5aWaVC7b9kHv0zFTLFrFoGUdLFspdtN3FyUS1r4YGIkXNDuPU8s4bRXuTKjSfIIC5wLkFQCYElR/OeOurWbDeJQB6D2Kfdur3W6mDB9XXEC2d/ocncjM/RpY2SMxNzjZSTMztA+1Ov3QftanDigKUJNidCN6i07N/0FFVr7gsiwwBB1TK9DkrH7Onp0GylmZgplBLsrAIRc2meQ7czjQH9qdEo06HcLLAK9R2Et9WW9Xd08sEqrUdulDEyGUYL5N+qaaicltm++ecM2MtrmODeBdtcTUEAwleCKgagWNu5RRk+fHQFQhtIrYIk3weL2yZvJLqKNI1E6a1OIjlxEEJGr61wTY/5pajqrAuT0JwZJKX860BqNe26BYa0Eu3sMI+Uy3aLQdgd1XFHfOY7oeN20pG7PkGo0m1W+zeMwHcRvzV7vBP8xg2f8u1ubR+PnOFHsH5SU6poYmGdEgZX8pi1SOoYxuPj0g+xP2m1xWW2TLyLNnCK1k6LzOi8XR8O9Bdr4LkxHd4T7nnjtSaXiZzaeSy9IDbIpUiDynpGUVS8cuHTAQnRpZTCOb40UREXELbQBMg3ry4hNF6hkw+IMj4zNzWF2mxCZXXtFpwYjZGC5oElHfiBe1HGYcZPCF01U2owpmAe4BGubEaIiiLRzPtn8KLCLShc2wMd7yy8EYVaX3kLofEhv4+IGo9k8eZM5CHSukGdizWreTKw5osqWTwVhcE2y6urnLJEHr2Ib1upaULceI8cIcMyKyhLSAdjFHHAVOrn7ENAItbNf7iEelHLKVLT+Hw9ILI+wstatEySsh/baEhYxFSye8O+BH5gVcOmg3y8irGRWWNy5CgwY9Uh8Btzwg3Pf+tAZzL/94cK41KDs5yFr43hDvi3PipfrKSrt+G8EbURsTFxafCMr8wcyRMWbhwV7Kjm55d9qNjhXEMOrqUy5FdT5Y98TBsZTCalYVusyTzShaHjPuhO9xVkq/P+nOO1bjJ8bcGi0BTO4Pp4eIoQPgko/hrX/BAlbM6JGXgZtNZcGKRdwi3Q2hTvMClKt80BE04jMG15wWdXndfFV1cxHAahlHUnn+LDonAxGKsdMwcLCnnMbuPZJLFGOhhKjIPKyutItnLGGoF0Z7+rKIdkHYte5f9LtXQPOWZIKVJAvl0X/rghNq8+5A5vkBbwxJA6UbY3n3S3Q395273nhfcyE0fPfpDfaVQKpno3Kvv4Kp9E7zzXI9XgJ6oQm4qL57fzV4huBuEaZmknhNwNMf1H6cLX6U1QaLuZ82yEN4bBrxzmQwjYIhxpDTL25NQfWFTWu0vT3RJjCAqaQ6scw7hJcNSsBfe5paNt1Lg3G1l+LL4s7Cg2auyaApQTyMYKuXwWD+zSSxVlB+FpjjPJA5ooIsbFlan2+qyJDrXA0DUY1mqpmRkWrl+reGdqvffTflkdN1PGvjs33S4ezYb3ZZK/yZdppiZAcaXb9huMELTUbnBy1/UrmUgL8dbRBDGE8DtZD9SGUUkEeS0/dUbmonz1PDto+cMdodBa5NxondZGmP39hsiMUf3mRquX2CRng04Pr23Ox72cRM/JtCeeE03Ge3Aol/nOQinoh42FsUv3LpacflA9cLCpcU7uShRXY0JSKTisJIMwqCW1lr4NxU3MocxYM2lCt5YAFPwsW1bWd8XN8RoSgUcVMFJ29UIFDtAs8wXcn+BePnL6ZSwb+avO6gXWGqncPgUxs+t2d9vqimpHSVfB+cwblia24OEupUUQWaeZ1Yf96bR8KLDUIxkwVFBXNm0I2hg4gXcOJkifJfWig/kMTHNnuyyTxTEuYehYNHCWEztKpt88CgK7SrTakYZXCszW/VC7pLJoNTrajEe77oZDXHgGYHm7hxnTGofl0KB0dZisGbJsGVxVswCYtzU1v9+QAVbx0MbAcRhu5DxFL5XrGB01dVzwZ7frFh60CWeIHp5trp5zq8ZJTu0Lp82//SFDLsTsNoHPoQZXlZXpQLbzIPEEt3DZ9mhmXAwH7+RDz1Noib86FIyrITH+VML8ZnSZ07wobER6k/OvQwbfLeT1nLZM9oLhkixfqWH0BLK7YKTwoVwdhw2LZ6M6VpwdrskO05JL7ltJxP6mNkTO6vZ/FYTjBTEaBBiuFaUD5wf4DGtFC5x8+x/D8Xx4oDxwuzalLofTMIx0xD/pdZLzuf5fmX6yP4MxCuFjC/pYQiZ78Mg+clSrFlYmrXFpjuZaxiVVgqdzn7iQwHqNqCbY23RKSBpXCXlUJxDInSGmoxw1DfX5H463C4gbCGh4P7Udrg5sw322Op4jQtAwO5/f1TuFDx5Ii/Ot1sWKLNpryoAgVcAIyScCfV4l0NrjwRrqFf9Q/ktr7Pee+I2l+8XcLloR9HUhESKBkMoiDiHN8EYVc8XqXl6nomzNUvyyH44ln0RhSUJAVjdYDP+wl6KSQB0CVdfUowx9kB8jVvNt/Jh5rdBnNEgF+muNBfZICMMukOx2KFGN5DwJxANlzfTHRxBrdsqjOdphk/mQCAgjlG+rrfo/MEahkmL0Q8WLGkhIW25+B//ATa9YHUETgpSO+njsM0YMd/WtiWZMtXGTbASwiS03noZmN+fQEVb4sSju3ukhrQJFOdAncInDuUu5F2LoOo/UePBng1T+8A7pDTSjl0MlopH58OXZPbtfnz77U0rCb3cNEhzhBS4Ly4JOgn+iQHjakfHGRJ+BWHmbp7Dc5odu4i/KaY/I5jMLmJe5kNjisazn2lbvsZWwVfj85euQTJLBMpkIHqPq0peKPh6trd7TEJEZDaibRTSjSMnkhtVgebwv2XJR3/igB6J4AJnEqaYmiQTVWHj4alH14b2Mtyx15GoEONJ+0v/qdQ6TNKCMSnZonE7OkE39ULkt+A1L5kSRlkFpIrl4Ytq6Uf4klse2qUgFPcUakUCDXpaOsxyh0uvQ+dAOH31uQjm7ih8AROMcjhh4yn/y0kk0Sjvm2th4gDItDL1GXKiZfkTGfS2XghIl2szVY3sxOhxcCk8OZbijAZj5JSiSM1XxoJA8ZoB1ERW45tkfSKI2a8tu4YL5v3IMbrkBHJhh9OlCNAe7IDM+i9L5wyOzRcXyCBQccN5PFaLZs4BLoQruiwTQMaTsa40K927dD8IPmUWc7SLTKKWkwYG7FY7iTVk0ke70uN8IR0Ij0FgJezZkhQ4PDJf/Fer1cmsibr8I1P05MFJyhjqWjxHBpNo8Uy6PZeQqb+U5Bc361CP07I4MbU1hUUqRM46NDZlnSYsJw9LNE3tjUce4MGjg1i01lUsr4mRNcDqAOj8K1zmbhsYd/Xk2YRlGRIB4S9dhQZ9KwFRD6njDcnwKTnv+qAB6qopWG880Ten4416+/zjANYzMvp2ik2tCOH1LDWbNa6Tb5DalT88ZwtPfSI4i47r3L5kcDDiLsgWVpN3xUDwb0GaGmhKB9laZU3cwKfNBKLc5Nwkbpipx6buc0b50B2EHv0cdivNEfeOS9bXM1C8rO9GOkbPEIzQ9fi+jMDk6FQZkQeUtIQ8b8/1ARILR9F9pj1TYEiKSzsabdymUn2fTQoV8XBPixLYL4k41oiOKaiN3xwJoO/rLCZY3Baswc/saRb5dR546/4mdH9l9Elnxpu6BwODhM8sfOqtll8rat4VTRaOkObUSiuhen94Y0wZKH2myY/axuxwi7eUvz4Q6fuoacJqlpB8lmTcsueAcD0G2o74Ph+leR0jjBnQjXZrKCfVDJaUqRfFeKHgcM9EtKle+e7xZ4RW2yXLfMMZPIUYrpzC5NtC+2ZPbhATB4OQ777KpF3S3V6+8xoYWW1lvVlM1bi4DoB9JwpKrOagswUfBmJLDzfjTxHAcDhW98X0wYiYPgKlFENCZbfw0hzZXYSjMCKTFysENLO/Kb+vZUnXIaCUh7CDq1nqHoyF5I8TcxHDKFf0TVCGJJFs5cm3H04ckxh1d82AaI32mddxmTlfQt95wsXFdPNYgSxcf8QSDEQRwxOxQc3mec3Se2oeUBUhH3VEukCBlA6mZqZS0NGVEi6rw2FOFW0h5sQEjaMEMTSBKjpMUs4GXQdpUUzGCK6EOlnqe3tPb0CqucFUnAUWM0td8p2RT64ME0uIgWomSmMdwQQNdxvx6JhmNjtO/dtTInJSF+OVhEnQbRA1Fe7mqWoc3c45VYDCk6Tsbf6uJtAVUbYahlikNgUNDqGiNemGNzvMLwXTgvPSy+4R10D+ZOfN4s9DBJcpx1SUA51b4uJQFFo4aaL36AGVYxWwIw12W4snUClNaJNwVE8MXGc7CV4NtnqD2veSN1uZPFeg/F1mJrno8I8aFjswFqgG/Hu9vL8+jKC097wdlkZ7TMB3dt9anXj6sbRZl0BA44owoqE+7TcHpV5jH4cYoajvFkPKWRJE7VXXJTJtBQp/7cnlDX7AeeK2rQ5feOdDU+3kGSeVqsDrw9IbDC6ppIU9bKfSJr49BcQ6m1XxhZ2aoKlKCrzY7GzO/Rf8V7MS1RJbORYTz+bsxuVnI8wO17rb1WYf9pRoxhLbLzPSV4DEs5qESKtT5xSLvjORIVB8fyoT9CFvPlTiGxPgKqWyj3bxa+41qPnNUtZUO7IGQ0xTXp3WlJU1uTrgjrRxhkGV2E7PN9VJZF+a/i5PLYCt2DOTLwxpnkAcfnqJY0vkXJzi3vXuaHTfKBsWyw2J2rwrgnB1fnkjlUeTsXJz0e5u3LdN15EvulhzCfFf4CFFkdL3eahEPeYKsL39/oOLpUVz0bmUF9ZIS6LFvAkUZOXTOAW9DfHMINmR4qUJa0MBGn1Gw6cxhjdpR0ANmea9KSDLQGMyYVKYeL+uCjyLN5x2e0adjAQNSNAFtanrBLqptdTC36LkaiTJco3D5FeP/IHkABCJ3dK7gg92X8wtNbswv82UpNnHv8PCxtzHR9mSVZMiq3TqAhf05dnN6+xtUlTQWhC+3YHtKnDJTB47ob42x6SbMAuLvILRhOazTWTlqtnusi9CPNxhJs5vMgQByWKakcX2PwtEMlWsASvkLdI7oLG8ENeP/eLrTPO/ycTmSL87jA113P8j0w94+TS4616pmKea5vfY4n6Z+HQUVv5Fnz+pgUTAge+Meg2M1ay/ddB6Qv5g1t1Cj6MOpruUcVeeFJHfj68wucD5OrvKQ/vjGBMJ8h87BpzxxeYn/zf6pH1LnGr81tmqqEDpQ2aox92IlTNEsDhTBkE4NTRcVyxpLEbGwPM9wT8vvLYWBieDlmyFlHk4MTiOow7JSxZGmIdtBcsvwZ8K9gJRfXw1iL73du3zzzEZa/7wyb2Vi3snR7FxBu+E2YRGuwAWshRCXU2GxG1Q2ecoKz6FE0Wd343GfBYLz34gV/e38FTU82JAfVuiZOiZn9rsL0A9Ih525TOUtwA+8OEejrpPKfwGVFIKY6sRX7A0T9wUuGG9qhKhU7lNXhudKqBafWUmtKAGeSvBhkmg5br5yLv86KleG4jPxXZDHp7njpqowRX0sIezCspgStV5+x+uNOHn5IpUX8ffVIv2+fnWaTSuy4wHoHAW+21SRmE6WybcJDNbK+/v1WFZ4XYvqIzGIIcAod6BQzZ140zfIUt1RdvJwNKj9kLjmQWLA2UzEJBGlDqhlQ6xlLevWYqMK0Yo/+CUOIth5OpkdeS1HM9xPG8ubbYw20swQ/bDTgnvO/N9abTC7A+Z4vowwIHsN+e4+hixZVLv/QZppC41MhGytwnNUYjISkYhP6RlHReS6vSPBEFU5dAF0vUJ6IF3X61qE71ho8adhd8/a5W38DZg+i4nn0ms8ERbvtBbHGmjTKD3KexW+H8aijrB21zDqZpboO9EMa5IZ0agoVw3iPnxo04dMznSzviZupZD05vxAJ4B1albyzWkUGnifCC++JpT/UuPxxCfHGKcG8GkHVybBM+a62XiWCtV91pvDMp38zEc5/7KVRVVXOBWWRVmgRudDYtrDujPU5J68oTVmDxZ2IletzauCZumE6R7tcv3GghAtfTCvgnepkSkocVbU5bbBnQ4ui0m6mG1YIdXDcDZs2JZg89xHMSou/eT9Fz3uQlG6irMT03hok2hARbbdtD8jYvtBOwBMhIuKiWVyJq69UB9N/kAzqmch+letLOC5FSBSpKugrrcFJ/9w/NxrOmXOKEx164zQCMdxToreUZwM843lSKiUCS8enxj7Vk30ikHjeTf+YI8MtXHHAf60vtkCGvmfmkaNztvOHc+CX+0QL+6nOZF04MI3gCq6/yuGhXzKizEQK+q7jBHy7i7UUW8PfZ8Yj+/YCBw3DHyehy8R8VhkT6bwIKJ+M7aLDX6UMibDh9R0QEHcb9gsO4hN6waEGHD/Wu0UT6vCTcUaihfl67CEfHw0MA+tutsC82BV3GwtVn1OVoIaGwscSd1XXaf+1kae6zcNVfzA+Bm7OmGAPJaM3OswBIEyrIAJ466aWmcul1/7x2A9ICW2FI+DkwqDacbCv8ECPMMiDm0LBMa0QUhmPmpciCKmIumGmaL9yhKCB8xjoOornq4dAjWwWM2s1TaLSe5AvfdHwYG7+o0LLYrXTmm/5gMLLwHEq6AZnsBgqSAJe7o2w7L2Ty6zcZ83V6HOVIlIKqoVFBrSnse9nrlo8pCocXNxcEWqJDcXr9YFBUGdJJ+o24aS/4whksmMuBmrOMkYvwZxUT/gzCKN4sAsFntpBkx2KbyGE+b9bOzlevI9fJAp0ZqVD85axLxjBiOFFfF3cWfepUNyZOcJrdaET/NnLW7/DgYlcujv5YN4n6tGH5K1OF0FDaiYBU17afaKek88NAmhpmn5hOWJjmxVtU7crLgq3nmssNo5kmD6t6XmC5T44LT8TBmE8xXpVxz6i1Jil7kjbSgtrB/vGxoPRoBeXj6gzwoPQgzYDH3gVKV2zuUeldzvsr8z/MQqZB6G3Bhu5rTWKApgNXjJwiFZJs9MxuvxJLSDP/HlDxUqXZW0WB2RwnlWQpbxKM5e0jV9DDDY9kooxKtGug26r6LLk5jI2n8tSc8GrD4/BOoX/OQJFWmcjZx90rHL5p3ciRdRXdb8T71/gRNoKZo34s7r2tds8kbCTGWXvFONye2HzYRUBOBJLhLdQT2YeUNOjTVWtkAtp4Edwikw/C8mnLRCJszX/zvyOYe8fFjcL0BnaxKBqa8Twf4AT7457otYp3npjgIwZyIHBwkOI8n1g9KRUJAagzhohb8vgV1vz0xCLguPc8M6zf/LrIKvNozpOjxEW80IGEZ6sc4TPb/plmdGG8HMbabhOkLj4xatwno6bMKsKYGpXvEgypTt0OAlSxMDN/pSaynvJ34D0lA224CvplaTRZDB5UE8U/NbDX1cVdobRVSB/Upowx7NwjRvn0uxfil/GHZ3qS8e8o6wmm/Wo8OkEEEP/ZJxEg2sIPtHn239BWaAv+Zei2OLADR7Ukz662T9zPgks1jn+U3XO8o3K6O3oa/r988AjTBLTazdl5He+fCpMqdnCAEO0c3LALlBmlH8PEHT7lVH6D+LUNie4RGayMR52m5mKFpSKVg5s5atzo/xVYJHK90CssLFFHZ0Xlr6/7iS/JVJnJMIiuF+HNDxM/9ckhskauustyZovsR5pGPIFPgCEL+HH4tEFtDFufClgndrXjMKmZQ9/xMzrMpeHklIwQ4PTH4uCTjHTiWJxJmuZw/I8OeZLBe77AkvqM1VouGpBcMbII6yOuaXL7rGSZpTaa3Fxw1LloTzxI0w1HK8ZNoytv0ap6eF+6k3OOB/FUM6ppQytf8HBEXg38DyApiINBc4LDGysxFCIkLXVq3ZOXMKLMbFVOpT18ht+GinXtJApPN+xEgZgjPFVQJM3BGTi5P30gtonohKRgZvXLu3uYWWqZNLPnEJnO7p5Oasw8TNZ+L7kELGMypCj4f/uMjvopPlqQ9/1ur7WXILAnh5/u40lBwuip8n3iBAUY1H8f3h/PB/7LxOPxUzASgKSfRakwZvYQsw5Ri5eGszEMoi3rfH66Y89o6lB0ROYEQHCQec7YbmeHsqY4umZwt0dKj2J73MGYYVtQ6tUB6Ir7YFNzEPgzpZqpMI0rNp75oh+2HJPGKAP+kxBVIjYuKKp+DJma9CLAGmfsL24n8X8HqvI66pfY/KtXOySoatA8WZEnlH9f+njTkhfCZyF6tgJzlt+EcqCpeBNP5bc/yh1ONDypBcEBLfytZumpPmNucXpjm4PTBviWgPI6pT1iE3fsXCXyXrQPJiUvyOr7PFN/3qFzYV7OX16AvO06Bofg38UW5pflfkOCUd/qksLn/J3e+LINFIKTgRQTQwp+fM4t5zGBCVaumfDKbg19RQoDOdgQVZGaZUcFvK8cRPGgUWffsVwq2Knh1KuxRiWJuNpwdO4SSVUhKpe5rxOQaTXktVwVu7RoIB3j7y1/pzaKo8GqfyKNll6DDFQ2XeteqzwRCerS+0nlQAYQHCDr0stA/nWAdP9qNiU0TPvhl9vg7SJ2gjPKTr3u4xpjgK6vWmmYfChZ0QNNpNtx05fM48r0xVFwR4iiXCFah8g1UAVKfnOOk5dSZ/GvFkz5s65qrSPZIp8lcIdI6uhOpu16vLnI8k0+UxqWFVQprPMvkvxBToIGQyflnPjFXzoiLoWkZzDUH7xf2SRwU7JmkkAvF4C9RwAniHSa42WJ3DxZrQUt/1/dqSzQgmOZJSoBmbmkDmwEloP6kRNHSVMGEmT3qyq12cqCDQ5S+dU5mhQTVXHqHL97o+aOSFypLYDULXSqKLRl123XbHvlxvPjgIlur3jzx/YEjew6BB/HbxezGscP/Gygt0dZF9CBzW8EIyT4qfxvp2vSBJsMt27HuaV+hODVmZu7uhB1ozYvaR+2rFv0NGW3NJJwi4DZRaa2h6Xt4NxXTP2ArDIXjrh4KhR9uqbco9rBoK63cAPUTyGZmqYPxe3p/GRtTiMkMpnfL+3IyqutKrMtE5EaJjp5WxdvsnnYt1WSm8iolmDO9eAfHAx/IyFm0XuzgaPVDTZbpSFLT6Me04AWeEQ9qjFy7Bc+utZIvex2enpVwAkXRqkeY8GvVPuaVg4H+rwgAjoRHKjMMEE7bAkK8M2MrkP5D5mj5JcUrtJi8olOa88GBi10J7Vz3X3RB2hSQYt/LlrWYGe3d2Z4ZWJkLy6k8Bm8U1JHqPpY7nUi1gGJpXvoLrMgN9nmYpzCBNAk6gDMah8oEPhSTQygsxorDPr7fAefAaEHZKDjj+OQY43muVe42u8VCayQKG1a19V/A/fTm/tUi578HnA7Qr6Gg4gURw+/f7vceIxfDBypzRTZaA7KikLCOsuCh4s2wufoNgC5X1h4J9hqjGT7gQcciPXfci9wAMWfTTIs8koQoFwWg25m4Q9iPTHLODqaDEDngd/P7lBIz7s3cJIOfEBgs5ZwXDoP45b1HkDXAWw1nGdOQvZGZL0k4dAlGKX8WTe8LcHxWBhbIz51GtgUJ0BCT8JhCGoOOBv1S0DVMWoxSUbzEjxOcT7YpC21UZZZNBI7fNpp+tOGgPZt+0MeHAh2OQWZElPegbg1NcAYsIVlRtyyYo8GThigEY07A8bcvBt05nrHRCE0lvXUhPBkDF13e+HgQDxPx/uhmju014vSlwHSJKjj0Z7snwj8BRgzOfFnFlfMgCp0W/NyiG6CanVAXY65g82iT15KJuR7rC+t1c2Jb4d1SbROBsJ+4O4iU6bvCMiARqIPQpIBYuffluTAchGkJOjJCnv1PSJmSDbiI0eEq040ami7KVNRqoy1qxxgsnoFSRPdt70vzpnluteUFF3IC4lpgK4FpDz7zFPbz3vtafus6NS/ehlXkJ2xVGekOL1Djxq8U36ogfcrimRWdP4DXZv3QfK+FnTY2YiPWvK2SlCfyUBTUjXgl2cD5os0cmW94sPa4MmH6chC26Y/LKNxQvyugZa/XXdeexGlgM5zvDgTD7/+gtHjVgJSUW2+w5uguoaB23kh9//4egPJ5NIV5Hv+WZD7H+xttqHtPfe5paElztnvsKOZM+OrT0ifDeavjp/TfLvjdx+AhIbJe/I/0vGVqQ/a0tZMjst/japcLs/S6eFlnqIt2abDmGsl86I3sGzSsWYsBKyoEqYhoAZJ0etDxxF88HDB2oL+LXRYGKNhGVtIdrrEhgEElAsVelG7S4qD8QLw5LZOm5yLmPln5bU2eCTI8D5snnR/vzbqBa3Z82eWLcThQmpg/3QgaFnC3hWbH0tTg+XdvWfLKDeE9yYZmO6pbbn+2KVsLA65Q+DzxRQIlmHI/jW6YFU/mkPSrfyy59NNVdeYDwwnw4cu9qFzYlubS6fYg8f/31xeSJA1gnrqevK5630ZbhO/Rbtpsyc4AJiHSyE5PTO/9Wh9u8qPSlNvhR+engiODimNuNLZwgBaOWQVZq2brC3aLSXcOO8CPk7ca8g0AvlNIsxGNCgkvLjDKObhwlDk/Ff3EW7D3RCQXJBSj7mkctqAhRpwmKbaKzpLCcjf4i49JPphmYMkqUlXdeTJzcu0ZechoKN6dRTeoadip0ZX97DGl+4MwccaTJQk59UxwQgHUtyjc/0mhtqXQgFLwttRCuvoWXFIdN2j73i3DY9zgptBnMrpM1bAiFzktG5WV9Hf3NPFb7rO/+7xhlFwF8iUDqcMTUE5zS1gsZCB3yaoiRpfUYKjupwDSyancDQ8k0yWo2UWxOCbetVolKePmzZVJnJMdUowiJZyfQVv3oiL2gYIdYaliw9yvTTah9mo7UwtHZu+EsVpBVBfG7v6EJ9L9rUfGbwD8h8ZFcdZMRLFBzFW3tXIhKngdJuKU4cvYJan69L1CkwGoo3thFYGP9GXrBB+MQ2xKqKB13/XmwFFRKpM6uH7pNJgZAuuWhHBnE2JJNW4hXzB6BgdU7KYyAiBehvBshzw5OQJy7lvtxRbV9XB8s/mWgy8LMNUPXsCuZluobf6Ft6s4HynyUclqBU6zK50oSCYPLYsSKtJoByB5HvlvrH9rn4NMs57WnPwTjACtYoWm352lj4/Fwoc29byeIsJIketnqWCmJDXDWxqK2xlyN9qV1PBLQj8HB0zSokPjAdNoYWFep6awKOuHE7ruhfgd07LPq5pVFqJvyU1PIfCMzkECrU7a7j3aeXCEj9WA1FRCOxW/OsntuWLJtgQLQ0pVJbtngQ6+lXTUV2ZnOUlWzwmHBxaZho1vjZOke1Tc5BclHhgUzgjlS/CHoLBkFununkjDScaHKc23nnAIgYv2ZsfstrfHCFgNRMTVkOnmBPq9tpOysFun1qNe5A1LACvc+7O9ZkEu/4gi2FEVaZah9XG4DxiQyT/s8oA8KGAsgtU+x+DwYEgMItqIgCnoQJPXkSUpRxBJx0bhUcs1cReRaWY9poObNRZfP2OsNwQcuntxUow1FnnOcSI0x0BM3UI1t3Khu3R56KxSoyObVhZXyjQJfKmQ2cELEq9ZHiu/ZuApsR65FW0yVgid7EtrFHuXn5DyEqkTgQ+Aidm3NoyVaKQhJOpseIjY/Yt5lN51922/T4XGjWO0Ge/v+5Skchuhq2ex47avtUH9yKN/dl1QV9ntQtv85WDGxBPskyOckQtpOa0YVq6cf55EFWVsyijiAek5fZGzh9W10Rj9W7eSIKPNdetNeiaLDaqstPsfwkoR2wvZFkswB7i1+FgoTY31Wg1hFz1WLNGoJTZMLF+NhJB76i3bUy35W3ln5M82jedW0bpw/uJTBXlT+3eWdjv8vuHuuuZOsjMX90uyFFa8Mb082Vhs9BW/xz9OjVVj0DgTs+stoI01NyociFZ/xR+tyuiJM4FV/vlKb0eExhDq1FINYSI7bMqLmZT+6LRGBBxigus7Y0ja1A2DzXEMo3LwmM34Mz8teiobdRXwAh6R4Wg+oZoUSvODx4+r0Ga1jhMdhJP59K8cHU3vjBUGTfct5rMVZBEwVn9m8uu24HaafsaCQki6wl69iwND5ozuwUZZKg5ZHitNskXNW2NNSlu1FL/hr2Zm76/tPS8aU8olorNNgZqkcmWZXS030PdeRmrcK4EEAev2fOX1IqqERoCl9AVo50u/JyQk0cExzSBELVzE+s6I8ThSN2JxmhqZXNaNCySBFloklJ+6jef5J0G2m4vVjueXecYa0ODj1V4ittlBwD1kP2TaXWtRKlUjw38fbKkA2LSOXvq5ZR1kCyqXqD1lWqjcF5iNm4fJeWr0l1rQgGG/uhKulhhZ+/o77j3r+0MgUwmaqnMNVIHPivRGCE9zwniC3FkcG9gU3dlytNuoNSWBm2uRyAwfi/aiTEuYrKm0nPSAuEEt4ZpRrySGEnTRQEYFpABhQiQEsQKqvJKTi6JeMPYGqTJimwFuu5JG8vS72zdGjUJXT2sOAVaaEe88YhH+YweLLZ0P6nyoazjn8DX1nGVvIr268ap0MlygPWFf1Jfm7pMe2wwcSPLDfoTBTN0L3NeTj/mr8Dfo+EfToq23RldkkFODW/Q4PZD+prNwsnC+VMAjGZL8uBG3Si8Y77Zy7e6P5zdnLlETPrHTSqEC/8G1eKB+iaiJt0rjApzaYiiLt4V9GSW24KyDFtdfV4NgMArgmJMpZ15UwevsKkGcZPrRAeU8/lEIi2Ptk5exyqLiM+Ulp/cxHtiXGq6rnRKYP+vMBmiPiupSk3bk6AzNO7Pu/1Ulz1Fshc/WSqE5zqiKcOtJPxjAIRr3XQ0kntgyQAQ/2JkIW0P5Vb9I6R+tNg+t2XHNI851Be/zATJdLsMDyzIE7xisssWyLySL2ZHmdhgwvKbmyvSyDs0+xp/6+imM2SF8AZJhjF99kIfclj1ftJmwJuJsmx3J56Kd6HdqWUj1zIYZLbXyX7jzn/tKp1pmh28TxH0e7+vGLTl/z/Emb8CZD6lp+T7m5U4e60Rt4sTRixqcUjiJbPJ3OyNzfS2tzTQP3fHvsg530suGhkuaSAKXAvrBDEqy0zgLvnIV6pX1GXNvr5C5z/SGajVwewSZk4jEfVwtcgepS/OUmz+xMOCNjo207TbVrCV3la6PfyCypj14VRE07g9G7DbCWCN1++KjfHCfUBlHtDtF+zKQA030YqW00ERwHg92mvu3lTbGSLgd+ffVEJc6rKvDfaZMUccjLjpDMj310/pG53FAgSrmdNk+UXnJrE74PECEHZKUdyZB3s+1Ol1la4JKCpK/Chmf1tHCcuxlVtb71Q6hK0k3A7plk4O8WjCrpNk8DTwbsSo9HKz/SzrD7bXnjyYmK4IH/PpkVr3wOcEIedqrUYrP7OERknVyoYe95Udbityv7t9lAtXJQRc22Mb1xWKPEfh7J4J0fR64Q5DlL7D8CZoWSLiiZDs+rmQvkZbK5DBCdu1oWj8JzHQ1MtdzVxOAZThfalUE0cIhtm8lvGmzoB5X5uu6W7jawxXF8V8MTPLZPgUGB0YYGPHGTQ4rXkD4tVJrCuG3PnORkUNqi6GC0qoT5xCLv54K7SvbjV3sbR0sltZ7dcKOk7PF1u6qqDseiyNrpwXdZ1n/8JKQ4O8LnpsKPUtDzz3uEdMYzIOjsU4tQtkxeaBVU1kkYgphAmTZBXvJQ16fTzJTJP4gheh0sBuTJVrDsWLleJrEVpQJgMcnU4+IZw85RFwrIJ8ttffXpf9VCqQ2OXCFtpG1DGdJwhrNeS8AOkO8v5XzCCm+f2v+DZB9fmFFPA39DCbfh2xMJZ5DIDfljrjE1c6Tn911GbLdWvfl0urp42LVutAglRHia49/gOoKAKIA+mb3yFdciFopylhNZoDSoj8btzvwfpdM7cenIs6ezTY9w7JHhtj6Jcu32ZVrPfLBnmyA6UizfV2XQemlrR0i7StHJRpFU/QsIaafdcHatdsWd1MSGq1Hml2g9/hiRJBnFhBSF9t8kiKT5lOiGKhr4RRgibUagGncnNY2arAVTzQPDbA+5a9F/Q3YE/rHaHCRopW0qVIZPEN+6jdAH7UquP4uCuYmRc8DM10PeI7Avb9vCu61Cp3FFTwl3WnwvUtLtT59Sx8ax038ao1aCx8usNOnaTCRvHCHRR/mHwhD1fA3K5OoexVGgXhrLIIWGnz1JWj2FmNILozG8s3+Jxt1no4oZL/eimMvZjc6dqOkk3DJ5SKozgMjopD6DtiYEpnWmYwQ/EsSOujMu6WXqYJ/U9mxYqgrJV4Q1FDRC3o73qUlcs9A2To+1Wju6TlkC0by0oSaW+cJ/tUYnLOFPTerzOYKfP8HQJrf4iuoIFLgWLp7VHGMe0FbwSpZV0qEOoyfPK/tJ+ySfxoOoxW/GyjqKUlhtdTsyy4L7aO6YWOZ4fa7upOfv7f2FLW66FWOF6P7V9/b9k+/BOJfNUNRtg9CD7kCBuvQlUXoRAVFzjuPWDZUG5hUAI6NTrFhKQMZi49t2CBTFUdR6diNJa8v0gmqyauOGp2lw9uGzGGjSqc+X1wdRPI5lLYpUjhZ0LmA5uANIx0yUezW3f93zqnGM3M/yudikiy3el2krCRKz37hwZER7DqdywrEMm3r6BFrFPWNYyX+NBc3Oct7wbFFiPAZP1cNFUfIXSPJZvQV88MvEYhTqPM2CvoEUz7FR7fsf2479PWrrll/66pJcnuXM+4iwJ5bvOJzb4nRlJxNvytcwxlsix870h1/NB/C7JQHkkIHB5C2kaYAuRWRpV9QdTHk1mw4MwaNLNrqiqJB323Md5HU9UiAenp8DK9aVOVbnwMgK3PtAoBuf5NMMC2Sr+i6xqTcGnp1NZjUOFUNN9f4l4VgXrtgDWftG696G5vnFfoyJTLI28Pq6+QiPbqx+go+2sg5EjlYKVDCop2+dYtXCC1RGqif1RRGKR7HaloiTiUZj23pIGl1rDkr65aBlQUuPIRTKpfYQs3guIWUCaNrfIrLWgYG4bpaV3L6lp4rqb4/xpM3Q1PtuUp5wb2JEG4d50E10Sg+ZxSElf0ktlRCBO5ioIdstwELw3ZPFfd4AApWHstmihS3sfnMA/jtdr4Rjwxjb+ZvPg+dcCNeZHQl7P71XF0yrqpQ6YNOilm44sN91GrhX1XFE6+fyWRmCh+8PrZB/XiQnOBKqHMLWePIGtMwfie2967iUg4CFmorskcSZOH9iNmimsaWPo5tVLMgu+OqKIQ4UVIoBaA5gLZEXrAxus1c4c28rgJItR/MvC2RROhGK3Dyo441SqVym77uhJycnXUyYiyVKUalRRBo96nsPLIs54KnlsJMLOirr9efL5ClV8IdvbNAft816TY/OzVU3TLf/dXJWuea/3xDZnGSsUNlZzfRPlksjVlDjMxKXv5k9XmMu4lq883W0ZS1ksST8LZujeQuujHyj8HlAGpcmXu9hBDoKIX4OvRQg6ZcwKyNGFaUr99AbHqWFP4Psqc2PPw2S7zLc1dtW/vyrgx8ND8wi1kWg/vPT+677WS/8oZC/1IQolIntYvUNBc1XcpN+ItbqEOqjy+CVwBWzBBALKiyeunMjVrCxyLZYvpIf6O4k+rwjqYv7SNcsGjReC3Vb6oh6Mio6EMLeKCS38Iu6HFU7WT2yaFaKra+lAMJN5w7R/NqbfnBia7VgmspvIBXfB8u+7Yt/FKW8CB9Upsks7BSuNzhdPzY0HnreY4kPSxUGnFTquN5/ZNZ6SmgLXhwqPl2TbaxVzxjnxx0W9mByA6vuw4XPvdgEUBIo+B9Bi8sKDWWTSVx4gCTnMzNfgBtTSXTkm/6cedfOyrmlRe/0CVtpAgzHjf571tjJUFTkeXAc+j/Qt+QhnDC3KUrox5Wb4zj+kXweXTSMxKJK/NsJMw0vs91gxwEhOOc4w0RzJdWRJ9N29cmkMst1liRuEyqSnp88lFHu71tzPO2FSsQuT78vCyeOX4FLEBYN/jMbpYc3L57qeSQ+tZRaVoZYVl55pgwHaq+OAim6DH+XMwRZ0ugOGadfbl3RIcRWmJ1fNX7Uf+Jd8G/fWLR556pBsUyf+FIvuOACWQ5uy/L4jEJW7ezSpTHNF8xReiM0pVQntkFxe/QoASmAKnVLvWRsMpht3uuvIJIsykllaL+jlhR9VP0//6ieRphCy9Y1EYAXeE5pwuQ+4UJQ/P2UjmWm5WxUds975j9QMjsbg4r4YS05GkxXdd41gBQjOsaHJLw/yqImqMly5hTKMRJ7zUQb7gFXk31+c72m2p46S6PkjLU5H29XDfbTleAs9D6tQMzoLw9BVjJ7DZB0mIg/kzQSGa/ZMdcuPEQdNgZ9xoNYRiWAiBbBXERzDBNt4matifYaAb+1Ue5EVAdp41TP/F2tTPMaDMXxugC70UPsTty3Z7W0++dZaLHfd/vGyZCA4tX9sLoQ+oQvvmfWWSyZB8BRKG7Zv3YaQPanN9RTThQssRHqPkIZDRGZ5d0m9SPu0juO8Soq2CVwS7/8e38yEi02FP15Bv0/dLDnM+yMFxYEIAuONQr+KAp0hrh4b0989VIOryd6Dxt4Q7mQjaqWO+GNCWYCTjYP6EMdQSLJYSwskxKIQAED6v/Ls+TwazFM0a4TRkbM5vLHTQ4LtK2a5flgDbg54jkA9UxrmiAWcxl2QbU7m+5Ij2wKQPz7O99qzZ/y+eHfed3sjGbVzlVb9zEjEssaE7pYIwQVIZbWHKyY16r7IlnRyJ+eLHVw0/jkL82Dh8cz0sWFnL3vciO9elp5moOpou+YQblCdLddyvcSI4D3ibaayzxx/8iPuqQ0Rz4zeR2KTKNL1ruGDf78ksOudbNgNL8yCaUVDv64DnCoE8mKYiAHwcYZVmmcmmHqE4wnkOZY1d1XDfd9TQEAWMAh/2kAYY5ZGMkilrinYcJUNoZxE800CttcwjjUSHTUKlu8zzHmAvtcZxINBLue8ZfCgzAYxlhlgS308MIGxqHXJMlRiQilH6GX9Uw8/MiMWk/wPnV8c5aIIG5332inQPSa7pfJvrw2ngP/p5Gsi+sIpX7I7PgYl+KT8Dl97gOyH/C0viYeyZo+MiyPJ44MY9LKlufsefHvBTlUmZvS2qgCzIgj4xxKAK+m0VcA7XvY7wkS5gRAMus95u1S0mBVf8/UEVT40oJ37aNUf/YfDf/pOPUBD/ctXJi/tWOxV5NaqQhfEYo84udnDtb02JR7doIg7+WR0/oR4BPWeth+vxMZTy+BLvfIa52irhFdtDAQQ+r36y90lV4kgqxs5SD7VZdp/rpi8zKFBV2Revmi/HYURXswaeUcyGCLCzCxowKvX4V92hIbwy9pGYZc1aWV2r/FgHve8tPELH6+EJ4Gv1rWg66I3tG/emiWEgZ8CiQloBH8S2UeXrGyn+GZxfap7jbYyXEL4JuSedOIifwkl/a8H6BiSIgh1/vUPMOd5RgFRgZv/ksapY1Y1ZWseKO4MUZZAYjhGditu0mW+l/b60fg4RHsQ9Rp/husXayw3Sy4QUYmwOj0jy05/fh+8jGoo1CuBrhs728Ot3sfGYoB5EyXsjv+n88xqFTwE9WWpakB8u2NkcuGJM6mbo3jH6Z7WVMr//AibKGGXPBeoNptTiTXf3D6rbHcaX3mN8HwH4GSo520q5YajiDK2X0iAA6tjzChYOu/5WQYBZaUyuM1MtWP2wOs+8SFFp8ftQZRw+T9O7Fpad/Twxv7ejaZUCqMHL+JMurWDmRjEg4x3yHRx2FnJw4skIlxtHtz4GIUZNBf/Kg5GDCJmN6+jXpe+QTEmVw1BP1Nna0KEpQ5m19IEWl5zuLmAOSNL+uHWpF4wQa+wDh5gtZbQCpGabKtAd7baaqKkMYdkBY055JL9uXlBa0U3gEwnWCBNWWzv01GflP8sA51Ew7fC4PJAnYZS2E720EJgofh72Q0I7AbOZqvKfARUpd/YTBogQEgbSWao7+LBoysedF+34ErydrcICNr3IopRBr+zExU9r+ksqFeWwrppmtgPaTUBA9pu0MgvnweKQanVTNuFG3Y+xM4A6klpGeGTecO5YpOGMkvIljkApK7EIJV98J56jWfrx8LC/wU9n0QN7Fd+1ML9L4g4C+DGYcnwGX9AkMMOzDUfD+bLn3VeOOIVmn0ImeWsGPsamMpPQ6ySd/3r+iHI6dOj+FytN/D7Zg9/gu94X5ewBKUAuj+CBIc+Rsw7IhCwJonA+EJ476We8OzezoIK88C3hsbcSGJHbKAImm5mXVAD2uB94V1p4Yax4WnRqKHQOOf5DblzLsg3HHShHM5xaNBcoAfq9WQgj3eL4GZJIKveLG/WvUNEqAee2RreOFT0n89oWYCtmRTr6NJ5/VYCH4OIFYgTg1Q/DuBSMOKf1GpWvtAAYDCaEtYkzFCim8P06yNi3jEjXRW6+aLwnmuYqVoDh0EGlJjL90EdqBEHy1wxEUSOHjOahWfg89BgRWTwd49yiIYPkv2Zcr9GdH4hxUI793zoycKXmVd23XtF1rZLX+rpmDMFLK9enmhyHCPWBZ+iaG/LgXO5ICBE06MkbgZv2BMJpVU9szdxaUQsmHD2RRmqtgEcO7toCHtE0zwLFeF2VRGNf5hi/wZNnvDvTwp/tnpNbaUEsfOqoaT1Z8j/HW1NKQUrUbMWKaICu3JaGNgLRqk/OGj9Yj0p3VSV/lqspxcS3X2izzsvlI47GvWFEpTYQHduytfTizHUgr270k7ykRdIAzi8wCV/UhebyOduGrWTRRYO8x7sgs5ggWZ8sNsQw79WQ8gz7L9UHOqgMMBHEpPBJ77qaUJDR6fmcW2PCrgFfLp/h53MF2c59EnyGukpYLMdSf+byPvD9nzt7Rb43mRuT6jwz5JJ74JK4E90uXFzE2E9jwOe2Jc1xoRMiP+X9RNOt468aSrpL127oUOGWLX3xfdxGcj4s4Of4iWMaxqCKxJo0h+dMdXFUP5F3bzSsnCsAlpqMa/LGYzZgu36z6Ka6TRznKmvaDuFCzsADgzFXsg4WDntJGYIkimTF7Sdipft1hh41XWxxiOBB3gVOfrxjGlhZ+zonPawGiUL4P7MQtBXPMqLbOARAE67bzGr0/E+HuseZf46+khj674ploJzQ0a3Mg0VkaU4IjyxFF21Pj9PlLcEJoxZIJnc3f5SOPaYG0AfxjMCPcONqHtuIE3G0jRlUkhRsX2Zh0nKIUq+cAfbLkOWU7FeQx9FwCjuWM/guGWIVfldd38YHSBW1fTzGH1u3pjdw2BSqTyNC1oiXxbiHHhU/l0NFn0qNUkI8HwqAiJSBcqIgTD+1wRyA0M9VBVUcwZnqqBN5BeKiSEcHdvYTvVZnbVI+Ho7X6fal+NZ7fL3yZACQqMeQok44Tb3iItt9jCINO9Tr8q7N6mimUrN1nzGocPwcL9ESHBJGd2JlzxoMFe+9nSCnMXyjkQ0RseJF3wwFR8ucEcRzuZ/lL1alRR6HVZcLHmrkf6WJ4Vc5JiQaC3ykd8AfMr/xBihovMrhne2hhfKkHY/p+TlQyZRgLnpSQ4xr/BqOeGWmjDJD61bmK9dmtd/tcB7ovsY0a+WsnULsi2Lr6sR2thMNs9sp9qz4pf6gLhv8RH+HH8aUtIMAMQCnnTxlfy8QX/Ca0V58dlvuVf8pcTrHWArcx5tcVIkRGzjV1jAAZjy6ujJy3L2hZKmtcgrxrdrjLtgAbpssDSaJuc7fz6CltSwqKMIN9tO0of2mk3W5c3zl0m+KxJ2jYkn3J3YqlgFprxraaPhXXJ9Pjkq6CxdLIKivoGhNiXqCPEJtonLXpBc1DUxZRx8EMCO2mSu/IoJMRXYx6HKLm2Uv2reFZOrkYg8EBw7bcFhw29ERLqc8+C0VdFK15XPyUemGfFbwbTn6GHL28tUNKnHiqL4J4pAtT66FQB1LzR1tG3q5pfLuhAN0ShJ8HaA8CEkY8bju6bz06nlJ98iHxNMG3U2GX/vBLXQFvtk//dgjEeWQp9A/+KFsWniGb7W3noyiLrOCnPvRKFxka9mBqu6/QKuFvDgth/LqtrE8GX3HQjcTR3Ig7RfoDSoDijlZe2k+IvA1gwOUXWNf01v4pUy3EuahAtEHDNcag2xp+n1Uf2T6ER3xvaIV0WO2Rr/QcfTWSHuiAK//pSVM3bFt7Wpbvr42jCCaoOxmACmkzSJqu8hIkFdaXT9KsBOcf8778XU728NysXZIH8UHCMXpxw0Qt8w9wMcl1uGGfXIYlshbn6l2c9pPxTlR56EH/7TnzixOJVHhbgh96Jux/8HzzVOZyUEJ/lr2WPlYV5sUf+7Gv6Bb/8OEtxhgFPOnT7xlLF/y6WmG39jcvindnp3vhRuzHKtFCmkjiK16J2ihRSThArZs4Tj2r+N+CrOR7C7ustSW/Vz+XFC0knBeYMb2Zvt/UddQhrEIbVOVEhIH//tOXKJbITQAK3OOjHOqNW1lwLD36SodwGSXc13LpJFPkH3UrJOz34OwbOoq56M4emoY1irDhYkhxHDGMGTm24FgIl6oqC4mwxziX5gmqxUUMSUNrVv9GGXxsjjYMNmMvRvW7MatrdPvLcQT66j0EU8nO4mxdypu9pmu42egOdbYmYZUgBz2oZ4dQkAZtkLXMZirPH2gvkx3/9F11SpujjTaq0awjGdmEXNs5fE6L4jWH+TKv+gBDaljuAcFzpP9+AYTtOu6WibE37jOXORgUTvry68y2ihPc6FqA7aqLkqDo8RObfVjt/GOL3ge8FFixfvj8Vc0X9/FbK/U2IEPAPCeWvXlvoTDKtJm+Lk4o3P3htJSt186la1mi5QtuZDf8AzkCi6EN1zmcmcRdtXEWI6oln+k/GubKiYQS9vBpepOHJRrlSRqECYpFB/VRMNFVUyeruVCEf2K6HZCQz2W6xYj2QuoxRlatZM1MaxvPP8vOlN8FE7bob46wSa01VALpO0cb2+aa60Nv5jSdpLnZDCQGvgux530OQ7zjA3ft2W5LvGkz/oDuXCEHhlOZGsg9cbUOT0A9J8BxhBatrRarKSnX2qOCvQKsd8fvod0nAn05EFoGYIdj7n+WBFMp40RZzeYMadkUVr6j9gigpv2OsXz0xCmylZQg1aedeYVyqWZ76ShxI04GWgbOv0qKgkKGnd9uXyHGGsWPYauDuWB04mOryYXrZErtr6UQR+XNyiSKTHzHt9syYQgGCFGE+CPxlw+PpHNk0r1pzy6pHXR4XhDidHya7mTS+LyTHLBRWLCBHXO659cbK2IkCitFJqAUiHiiJZlBQT/HYVrXCgRk5SN3oRhxt93QjjJ81Ys6V+PljloL9MsokUZKR68GjuMbfhHhMLBGHSwH+rNDjnE8Grn2SvkqUrRI+G1/gJ3n0PW9OjccLztxU6YDybpXkTknzYYLD/RXcGEEjTFSr2fTnzNb6c1vn/GYVdjigFGRXv+XNcXmjpP69tn5P9pMCD+7LQrOUGedlGDa8ZiYT3xitAep4LndUSfK3tqwMHktvK8zcFZ7NJkwGSw/0IfTvFRaZEHv5ah3mEIuTfPq8Pcr3CIBbzfgzdMtI+N6dvHvGPsISZaKRIlVAhr57gSGcIvO8sR1c6PbMUf1wDvkv+MR+J8QoN7yKupyVl26y68vAc90FcQkNOfKhDmkPmKI3VGZRuvDclrQjZPF+pq2KfYjeG1HD/Lwl2EQSQDUH6VvaGXxG/5eGErKczZQV+3suC1GBb+3s6uKH3xkCw0PLGhzaGVQEidJpMP02VE0NXmAPNXJDMp+GmfA6fflZYAwr7DwoBBgIGGjR/Lg7sHVjqT87QJ+ljAZBqrubcIAqXX0UkO8oEMRH2Y7NpsYhW75lH/17wDcx9hjqlK947hdiCcTI3vfQUXNz8K+uCcDtaviL53UE5wyMyeGyDbqILyAMOd3W9gE3J2SIV3njPRMLArWQMt1kgl8SXk5zszQQ/B+U2c0VIQ32gkfHG7schuehj+m96a+0OTKpFU+0+s7ROjTfAWkALIrX1VFmjTfwbB+MRQ8qck7mxR/VLm5QeKeXZsO+VkPmtXel6+J9i1vA5KO1rWYKqjlJxY3Cr/u/f7RhoI82cZdHci2IUrg91x+mo5daSUcB0zJHcX6qWxijEZSeYRWw7bRXnzZ5KWbqmeLxo175LdMgOE890Czxbtcz3PlG142SUFZ7vITP/1gRXA4HiDT9+RapPUs571bqgAJGWDX9oqHLg526e4HxhuJYP0SMzs9f+KI9dJKR64m2SfJrcl8fLkRA2r3Jyt7qOsnQ0JGfkTIFTy0t6wSBYKucfiV8k6nSFeYdnRdaey0c6yqI3egGVqpKcQ1TwwI7fKtcrirYq0eGLGenxOPYaIDRQViofbLMGSEMffyH17+MtyWYEaLZTGZ341ymUoZ+VQzf9RExP3KQpLDLFMdfEylubOkmrYFfuNIADnfblhB4PEo2oRNmkas3a/sTDgG4fX7DUipRtcvBlg8jN50Pmx4zYqrWImznrWRyOYXorbbEBw7gxZnZBp85k7klzLxJjSTDujy2k+vaJPaJSvstNJJSO2GxMINQOPY+PqEo6Li2Io+STrhH67+rlOLdnpVcRYyDFCU4lZ499laHlJ53Dy2FVql00ZpT6f+JDmjR/1n5+HQB7koWj9qkFAAarGtXa9tp2kfiCQeC3HVZ9ARmfdv8cOVSh1944OZ9TTaz5SQK4FDI07g45FtuH9TVxtLeUTssP5H3UIWZFv3Qnv/X9QjM7UppTA9oWWtaPcXNiie1Jy46F6BjJkuF0raDn3owCo0aCLfk1qH+r0t6+qkaZpK35NW2+yDpNXGXLXNzugDGURV3dygRm23zX6A9KQuTTtCllv9xqgf3W6Vjjj08SGB+pB9BKm00ErwK9z8F3sj4a5yxMCVtSi3iMC0YO8oSNSsFxC3UIssUkXiF0zlp2n0r4wQtwVzdKsAxUi06RlpciaCY8bR9zrSDKnBdds5f8GeaUYTNDq9obHsxfwfHnzcyykqRJgNQG51budj3rSUmYdfICenQKt5Bbv7ds6aKSlX1pequBO1sNVFhpadhvkr+LTOCAvsc5jtzWHiUoRaAaZOjqSKBUWoKZVJmbKWyVkKHETg5i8O0M3OGETB2WCw3YwLuDX/eskDEH0yjWdXTU+2VDlumEeJf1y4fOBJ4XvncoYDyaedHKBwcGQr3cJoYC8HIGPlEKREMdnNu0lC61XiOuyCbVlMuzAoR7MXQfgKW9KMN6eqs7cRJfb/gQPvOM/z2kVZ/YgfxTYeFNiW1mzX3TuG9WjMarVXF8eRc6DHLM7ebRzK0gH3dipLY+AabcILqj8CvhKOdl49p32s62Z7IuU892B/cNhAZd+RLcQQG7JLMsICOf3xc/ZgpbKFJUEEJT8GQ404HahveTQT4cNnBeovRxc08++5M2VL7VNjQhz91ePP0q1jUrEd2Udu9ltV2d1CMqmfbVjDpDx3DA/LZwW3dFEzlB6LJJqkW9TUJZwGLuLsCneHUUjFiKoNuG6curmtbGi8DRgvQla16WgyW2VEaTSuaVJ0vY5JPYHpW8HmmAnO/P1qg1s3RUs03S+m/7IRO79tyxAilpxxFRtesvhsHOtDZwmDV1yCZals9I9fEvpYUkWdiOfzD3itE2W6IhTsi7HCjA01+p59cPUEH0HVhZZhgXt25mMad2NvkdwHI5kcK0Juraad9VXU3Ta6w5EBtX6yybur6ZEDnwe0j47J0dGrqkyCoR115B9dDVd0/XomXp84MMwPFVDBGWDNgx+a83EoStC6tN8UjE/mFI8H4o3WmHmJNH33nPSiwaq5E+rzPXUsz/tkPVheTpZJtZmBgKQq+vLlOHzefd9dspQMHRiDy6c197wuapKqkwJCeOqD5MzGKoNCJBU5WVZGp5b0YQMY/h5OSgd88MFWXNA+1QE/CvEc8gL1F6Hqr4X30bbvdUPeZRjbnTmclN5X5wC180cF4wqC0Z7km30W0VRhkKqDKWbItwe80j+27V9XsqvV9jQRxezcJ87QXSeHdm58SKMZZ1EFWekduTcdqrklHGfiqIJuowgf+Sf+z9Isy0MLQvhsDFmgX8RoMOfBdVijZG8WTfOvIQ2oDgQc4R6EsONOfNi9hdV9My7+Kab+wZ9nD0SpHPXh8S9GzmRs6ywFdTaZt2cdYvYpcZWUqZr3Psxe+RcAq1y3SgMIJ7Q50awQ1Fo27WriO55/RhSYoPgEO1IM6Xok4eYBFuAhAP1UgleiHSrtZQ0+UI61BLITUkIb1APLLpPpuLSINdU+0nuZyw9Tatah5xgUhjaarIxVM+OwLlAdeZCiVHi7iqcvH8R4h9PgbY5xN0X4LHM2A50SjRBMeA2PtlFsYAIoQNUH51dq4BqrcnxmJ3zZ1mWaQr7EmmvMqG2SGUCVTMYg6vQ0UQB9G++e7B/Rbx8N/I4gQqbMy7bZvhGyI+BHxtNYOpk7tKs60CiYhFXTT2AXDh/7ZMoU1q48sRkbz2kXjiwkbWX451javIpL8Lrt35SB7TKpLXXKnC9XJiN5jBNzu1Pyf3ePo8IlpXpsTl4dY/oQnYhckTAzEZvFq9MWT07RxXSyjknmRktGovIUxua6KQS6oh9NxIInIxEHG/c/zfLjBhzuDJcANivxbNhttycrNc3ShlNMZ1j+mvF74mbJE4x+AXLx+8TL0/epmJIDUjiFWpbXykuePDbJlMAoNOFyoYY4oVoQH/GtsMe6bRsHKL6IyfMolxe5DTq3LpG/kYHskcshi6jCcXVvT4oYyl/nhiCz3m2QnJKzh+RPWcvj6xX1GInc5vGiKHzyPHMTkGRsHZhYotTpYLtvyVeWFqHJlSW3nP9Q6tp6jfyeLJJFAWQ7Vnl3IuywXgeKjIBWZXnf5pyvWl31Qzv3oXdkkgDvsTEseNEkliemc0NtjwwQj1uRcURLi5ZBhwmWeyCrAVIeucY7YWRkvoZmA+FLlo2nzuITPpBdQ79EfeGd8klr+2xKeWp3CB9RKHE0fjf8DO/5ddwNkr2t+9lqWQ6G0oH6NfU+jGbJzzNqMLDwPRocFjqarR3kcthEDAtzZmDL5Ft0GFhEDCDje5Jkgtk9oAW9q28Sf5PWddk0BpQzvKBrhA9d/hHH4Ru9nADJHtJY5AIQ20+hIM/zx5Osx9NYAILvql1UaWhKJ5oESnn8/W0gMLbwuyMsoQs6OkdrELxhUtjzwMEEn4CPDZbMHKYNGCVTXlJSXd5FwDmUkgrhHDTr6Vr208xHwEtAJHwuNLq66RD9E3V8rmHFbGjuUMkPdLp/Qtv1XKi5ufwoVk7KpYz4WGrr5utPfHxK3t8ukdL69OwA4W9ZZTlvU8O8e7/DBAsW+dNA/ozdue/YJdmsqaDSyof1/X7qeY1gtplhpdldKW3IG5veCBohZtMflf07BPrEuSYXBN5PNRc/SWpv5b2dZEXPFQe+7W+xa+14w7iyJ1Yuf0Ep3JV9nrRRUGy5iVR7/o+F7zzg7Gd01N96Q26BnnfaSVVYopWNwbeGwSw7ErQMZvtnUUnYhmOyAUOGrCn7uTdyg0B4XkCA9q9qhvTKbCyQ6CxfH5tqwsDKoBGdG33Eq2hynnjYaTbL0QI+tVyC+L0tBfuMWNhjTxvcnUB68uZemvQkNeedMo3jfg1DrBjlOaPD5BBYJchP8PdNofM46HnKXMy/FR1wwnuXIfg0Iy0uOoG9+caCjNAI363CI2czT5Cu0jomXkFte/ESVd6hdRDRqvWrUITx8Mit4kWa98xFbyOpTRSyGk2trCDuGMl48qk/xmu7tOIdXDxF4pD7ODgeA62iRVzK61/OAGXAxPsMNRtnIuz/J0y/DCK936pDZwveQZhYwGUG3XZkj8okjkyk/wNaLyOhepWty8KVknpuQZfWB/nl0fOxbDHhe58UEAIlhExGqwJFbJ1FJDZ7h+hjfzogDw9mIxeWQzXi0sG0/sD30dYcpfDdDh1x4gsFyeMXw+Tjq8R8lri9w+MTDhLCMT00A+6rcO19gq5qdackp3zIbP5qAgvOV/edyPVBktTfpz//nDSpKGhI4tJBdTgNmlxjX+Sxmgbl2ao5YXrAevJlc+dcz6xfiehJ2ov+CapCEVpBGF7jZulknOt4rTzdyMlzkHUTjmqELzF10h7URzriFe/OYOAQWYMn0d6VNxUC008UBokx5+TS4dxR9QvuwMwcTI3OFPTvhsQ5jlDMcPMutF1MUZTmT0HZEv+aJeL+xH/6SYc/wzRbk7IMbsy7L/vSrD6UkCb1ud9n9sLRvrRpDCsag/8okGe0g8N0U9cB3Vc2pfBfSBR9CvXtghaKEOrG395aWgAASbf874jK43uIgvmS729K2yshRwLdfPwp8VKNztp82asXnha4DXrLOlN0Pm/u9rLOFskUxoAXRSJpbRGYCOihY5Bm/kVyO0QGEtBfLnUuqDTG2KS4YAwvtd729jaE8GkhRA4cUHaZS/RdgNvVzZpvdpFUYiYoXp6qJvGoGRGSjhtYrR8EOW2BWP2Ch6G1VQs8L2rFryO0Khq+JK8IszXwGB938xF/T2TXnHZH3AifRPUOZCBsW1R3VXcJAZDqeNPf1QKeliBtnCI4+x3YKQdPNQ3TrLD479BaeLQg99HsBH0ZtTY7WifBfdtTO2QgRtnszVAj+k5l5MGRJ3O63h4T6eYgHzk19FJDwXTRbH8ElaLR5LkuCBL/LeAy3Rco9UyDNEccWzm08EEwWWPtbkTMET25Z895AADW73N7in7PHKpdB8RPzxfyuKegN/dJDT5qg0C/T2rZykiqjH+5jdXiro/Ij0i6hnQf0w0ZWlrn96JP+aZNm2kLSCTbm/xqWwMgFOgEnyZx6eWPGn1uuWX+01WpbCDO7XL0LxWB8eVqoWzEvx5PxI4gfzd/DOsP0aFK7T30lrdzU8WhJ2iB1+lBNuEetYfPKmAU5x/ueu59bcxzmVUWLF4eSVRMKY7a7GJzBF9raSndr9LYD53VCs1+lvyCWdsAsPMmnxGXpKR1dx4oX8+kxVK0+68iXtrLF41kdzYTpK5zrM9kbYWcpJRPshUqOKUXB+Aa63Z8QNM4Td7ICDcowJB16/J1YWa5KEcOA0Ah/QemMy4bhGMOh9O5IAaT0PEx5Lzi64GxxndKoHhzqfGyGgtX32Qq7wvJdvHPyeFF3vUQ5viIkpHrJkSXsr6Kc1XGSdNqdfq2MHeQYsuUn0j1Xo40eEqOqRHJRZmsmRnRt+bTdR94dHFLxOogCV7vgNHH+Z/vDkdWPFl6bJ/vy1UEnH1z6KeaYUs58AtGvdnFckD1hqgkhN7MElEabrNzHrj52yF4yXff0MD1T1KhUUzJ5K05+x4M9Yg5cEXzU3YOibAa0M+EMKMvd+/8pQ7gD+lCkKfJ4f2N3ZwWnJx7cBwo5fisp5dJ2NsiAT07z1Dl0ey1nN+CARqqz8KMTJ+AP4tbJ4bzYI9ToKzP1gAHa/c+Zya4W8C8T8zN4YuY+87mrEVKyUxjLYV0AFk6SYhMxNglmHWJuseBH+x+hGzRBLyh/xtirxCZ1H0+7loXsgMHA54P/mpmi0wzaP/6vzmOSOOCvXvTMnSZ0XQHZtFRp/SZascOe9l3+FGBX+HN3fCNmXqZrMBlEU5wiQuAoRN8K2EsCd3JFcdWQM/GDpOanUJ7IBJuqNZk58miG9qn6sBslBoETEni/gMddce6leByjgPx/58xy1TRRMX+1t0L5fWbqN+P0FWA2Y9UpllxFh+ccj8WD9gvFX3H3ZHhufiYbGXG5AL1WjUykBDXGqghHhERN8fxpzSAIXpdSOxJDRCZEwk2lqWUyoNqqsaqp8lU91RJTiO9IKEl0E0OkC+nlM4O2E29pJ+wQK1iUZhKLakDalIalGMKlyl8tC7GafnUjtOHrl7kFnwZLJP+UVKxu1yBSH8jpNwufaLs797GriSSv0xgZFx9yFCjFCPPQhMyCw+gYg5iKLEHyF7OdEfLUiQ1uwpS6QwVtwSfzt1ymSgQsvcRIP0gRf3KVoNKNOruGeUGrhluGyyT0qA4ORw8XZ4j9ryyzU7AlXJVvQFxm3PH9iArYC/v3PD08OyzFccWIMH/Ro6EnA26qFcpmjNBIw2q1c0zmvDS1MVYGGRRL1+X8sGllwZJhkAr7369ahHTDcqvcuDOVzxpEoBJS8v7HojlIz/7BPnOcRS+Khoevh19V5MV/kSLikWlWGPvF1tRDwOVjoykRRVLJ4U7czUdqsvZgr5fmR5fmwuTRqu/YO6kDXZy8Bmfnw4So7TcBpButcc/FeZ8Q0mxm+Weh9ausbUXuse2SWLLYtBHBKP3WiRBI+Zfmh7jmpgXTeZsqy07qu6LvJuqKcible/PNHRIPXPgiDJarA9hCw3Z0fOxVjA7wH82xqFGmxV3qn6BTUD0o4t1XD8lHQ4Or59FG99yxIP0dLiz+/q8x7EjAXfRGi5c+DBOXh/q+eDDdakpiDfPnSlTTBk8JdHfWbkpr6w9idYC5DajefAoZ8nDaG0II8LFN8RsAc8SDZdn/GM55rH6at/e/ydDkaPV/NekRrQKQz4CzGh8AsGW1ekc1C7yjwlg/t9Lczc5yhJ0Xs068pzHUvFd/b1b0qIrjhNEDrDJ6mz213wwpg9y5qwVYpUEBQKgiS+zFsWeMmcA7ksyPciFjJu9B5EXhsBTW5iApWZvWtPXS0PnEGTV+dt4b0o6Qk0W9nyE0au0lYTVv1UxH7ckaU+s+hUyM8KYJXGmt8P1JLpBcaff2jq1k8Q/D9k7B/LBOutJ5TJzOr5wx1rYBhxDDHr2Bw8Rtb+qBImQk1XpXBLZBQHSKjKNKuRiBTwncdJwB1swf5g+mVV4bj4oJGWfbPjdhyDh2wPurMInRBCeqcoe2Kj5YflY+0z8MOxF0eXNsqd40drm0Ih8QbDbefhipMAiMU/E2mdMn+T3VEOkDJP4bsq0pU/5g77Bsucwo0zXIlzUIRHWRwWEp1HG4dD4F0P7ZFO/0Aurfntiy4zv6vSxalVkclCSIdCl3vKYfJeHeWBP0AGd1nth//7QqM4/t9462fjlq8HBWiwJJUjPYQoC6NEd64zQI17WcCDTm31bBXAZ075bYHICh/SyhMCNaQKAwj2A3XSMfDE+sZxiEgJanGgzozBPiAbCtblOwh4Q3ZzYR8Y/MjjhsGkT4ebW4cp9ThL0YePiG2eXFCCjlbi45PB7qINSAauMEDJdPJI10XVaGOgGD3O+5wzQL2HprllJh/tm6KCXVSoPfFg3weF9mrgi5dv+SxfldNJJygrER/KJWWOwWsi0V27cmFsi6d1qB/OSFk+l7Zz8eE79Pmxb8vA/h4PoZqxU+xwDcL7dlkliL1d+9uSLyR4M/AxLpELw/I/XCeQ5X04osQq4xE+k67CkUvcWN8BQanFabIXtLxb2ZZsEypi1ZfPMpUFXH2aA7t1epEH9/EQJG49cg06oBLb/zkYHBxftTk3D4k3hW9GuU091EIlXwOegxiuStCCLlLOIKvlCdqWNzsen6DVDSuFPu3WoH9siioyhCS4yqJxs60EeeG3143oQnPSZROZuH48jcTWarFjGOW8ztvr7GHPkQcQobwM6eLqSRYezvucjNFGg+80OG+gEES8SjPwuYO1ZII/vyETg3+Ffes68jJB5/m3n/uri+//QzavvuuBTGvs/zjJz6nhC/8NHDdR84HE8AxUPz1CGpEdZ+py2D6EO3ziInVNBC7b0GbteZBM4EAkMlEqbD3/vwbMBXhisdsL3WNe4Rpt4xIpbtjN7Su/HDWLMqFmANrQkyvoU0c2dJGZI0QyzEgNig4qJRz24cge+MfaRYMbayM5FqQ04CgFzATs4KVKN88BLFPNpMTzGOvLWbePiJ5ZcqwUTGe6IwF89B48hSiLuOxvabW3jO5yssdvzea6l1DSkyZAzka630T5d718N9gxZRF767IhAgp8JlYfS+JM9yfuamdBPRJe0MTwVdEy3myChP/4D1lY2KZCGPCaq8NXGZjhosaa9pYwxOu9Cx6Ep4duBg/bzTNIFQ1khWOruH8EzdrhKlt+++P9Ubr04CG3r/VtRdBvuh0xsYzVO3YUMPW9OzoGRxlEQV3kxYeLNshcjP2SMLD/Hzy1yCgCsfVHCKRPeGnRCeLnxXxlRlPdf7HpbSw8sZwMUeZ8J8R6JoC/MrTmOnH5XlfR2BvJBi3lNw4Tr7UrgI8xXJ4wuZoNbQR97kJQv54IoG3Xic1z4mmntzqACETP0UkOAQTRvxZluXNIBQSSQIcJdiQIkMzl0MIS596jFWGQQw+Qt1oBfS+BH6dy+xzF96RxiR8n8hwak7XLMaZJG9Nz5aQ56j7J2QZzLPsPVit8FxvRtfH2u7EayEHkvBv05/7WMdA0zstP2r3R6CV+bDjw1jh0GLfcyUZSaNEppWNAsze2tETTuY3zJ0KJzuc4BtIvXTxSGYgH3ga9xuSOfph5meOtWo8BrIGm5B7OZHxY+WPJm1SYyoBRwREsGnsETX4BUQHxoseVal5JztGDwCJzQU4LzpST+0KS1HiSYdqAWFgQu0RvvBNjKVqqX0suV0KPypFKxE4TJp0EEANMWCdvB+RFKKy4QjS33eOmHfoqf4sfrrWiz+4mjOoYRv7TJnzU0fwI3EmUOCuh1W9onwcXlMyqPe4GlXRbZpFB5VEwmMO6eXUURICIYgFK7do2CFolDbblupBIGOh5c43/WEdRoOirmt+vH3yW54CQJcJRvcn/H3VHRoTPkUjA8sIcipKf9Sf5MYDVfO0z+widsgZLhDDxMMvN7A2jGf2yTLUY/RoIRvAso3W/tpOu4N30AWH9mn21E0S8Eu8FH6LZxIfxZ7dzJCjSvHCbsk59Ab4mNGEbTzucUK0aWav2Js5IQJIFc/yIyQPNynz1bivslumg3Zf3kOOug56lSSRlMKBNh/oVwfk4OP2WG+yuktGPEnXZfVEB2EJE4Snx4jqrp7v0kvAmNEkefcmkXZ7ybtR+cxsi7+rU8h0v5Y3M7t0rzXImhPsmc5u7gKNPlAtqYx0FdcqRzc1t3LJkU327f6ObaD9o6Y6z1RVyo/IjtoZmiHgXo6KIhjhRIqMEgFY2unXY4tqYGxE55jUnkLp6x5VJTA1zFL0Cw71F11Dh3YnJAvECHp0v34sIIOxlnZtXOd/iWuoJe1aWj6QSweEA4opCsEpNPon9zEKZW5nKoWMW5Ba837yiGrplwfdO6kbTLy8llSp8DICYGU4s6y1vW9VMTCYNn9boewbOGRZAZ4FAFvbo/Anf7XW6Jl0KXbuFjdDl8Vsn75ZMqWfiYviIsdUi/bxl0qp6Y8PNpYH4487IIbXZ1DIoyu2V6eyDZ1SQ+btxV2stFEXIHD5XXI3rUBeZcqz3jtLuReOhpQoEXEwQE9N9JEmcdjA1LjW8yE2naH70RsWdNMH6fFtJ36ZSK5z+PKKR2mjH9RZlukB2B/4wpz4eGuKfmWkO+gT4k7wh/um3mOo812m9RBp7El0IR7us2yYT+7aTV/jUEKMFrnQZ5T3WwHCEkzVf0t0TRvB2qJRVbtTqGKoJ8U2eNVkrJ0SEqEdiLJsJRnee/4CgrqspAki8xt2QWWw4RHuD1qfdM7UJVByYERwcHnqirRpAFdNRX81u/cJbJlJj304S9Glxay8T3LNHLkkmV33JIQvcQoxpUZa3YjrBSZZctBVgI7FAuOTK/BslZFcaethWZt4AXO+dpasd2PP0Ev5+MjgfJAN3aLF/AYqq4KZS/SvUl02PDXGnVE4qixErZGiRjeZswAMaPq1X4yXRtr0wylJgZUnVjeGFyM8RVPaqoq2lU2IPI/pjNbVf44+WgLn1Lq4Yg+SGXVjMR1xA6LUzm086FdOT2Y8TEs/xbGpKIPcWhme9cnJtI2MtuRXN3KezgDhFuOQLLeLRKqRlMiB9brpdtGNdtHnF5w+mUTBHkBxhrKYkJEpIFe8hDcs4DYRm6mK1xXvrXgT8TmU9v1fiqR6bSrZNaikRW4oITNXVpeMgDzE3mUwEkqZIIqR16q4s/I0h3wY7pM5vwcygfaxZUfz3RhGOiqCwVJU3NJu0LPnFuX7BL0qXh4LIdVpWmqzVEjTGQ6GLNtc/G+YOyrwufKoC1ZyDcgWyLJBgXj+zfaYciNR6P3eigPCEfJoAgObejz1GhIHWK/1PjM/+FrI7PYZhxcYgsSpCxqkJcLSqk+QQXEPMfs2fAO50q9lLuvlieGzUMGoN4ui8ctm0zZh5Q5XAnGQVbhslMKGmKttIh/vTxmZ/d9BQcPFn+nmOUYDK7MC6S8PEoX0P8cvmBxKVnSTKro7r8XTK2E4IHsojp5jNieUx96tyoBLAb6kycgand7epliCQyAB+uvuzAVmQ2LGDo14EbVzdyQ5sbD/xyOZnJfw9XoqZtS3n3/oIo2iiwIqtkpwSu8pKr84QtEypaGhUR2w2qwsfns9VszQ9wg3BOdfNljuWI4Fzj3C7eGTApJiSfE94A4uglA9ttzjOlLDHbVohJplPcfB1CEGt61UVJkExbUR3juzyPqLaetq/Xqp+72le5xrWwRKLezWWwT5alFM/4vvmRUBLU6o1pyRf02jOWOHrEqcmMT0M/sSGujyZjMN6v7aXpBvaLxziXbX1uk8sGS+51A4gmX7rRlgnik3y73dDIioStWOCgELwtKHFi8/bf0M/e/IWXXyHYzpcJ+ER74xa/z+gk4jLKcr3GLxmLYaTNFVFNNxnJ2jJ2SfObPDzlXngEprtnXIXqY1LWvlpjrERYQzYbTLQYw78Zs+A9zRQ6aAwOGVck6M04V+QByVr6yCAT1atj5u8gzFhb1Gp6OnEJxwdRjTk7SpQagEuaEUbVAisQDDr+aliVlpiQt2OPwr2wCi733QsNGaDPLwP3+KbxCUlrnooIhQlG8AAdTHGeo4w8wMxwNmpWITYWmDkTGCXBLJI/LtNIDcFsOJwis2JDx82PNybrcg14UhjwY/xdElNX/Pt09bmnV3W/mjjXWShKvNpr96Zfe/YZmevsIgU5mUyAWg3Z4xygMq3eZQDDNrlrMACkBOTiacSNBHHoDFKUECxISUhc1u3rGZdMnj4pu+eTcy104TgvdN7c8+p50XjoV+4YzxIpA8bfOKxtJA/AIDlLmCUvoXFirs/77BZHFUUGFEEPq4L9g5h0eINoer/apmv0e8ZV82NZGvxpJZILvkkyXnhOT2DJE66lrq8H6HM4iH1LLD1mmzgMn9mcacSV0GQHrL5tCBF7L/p3NNKvJcQLSgvKjjwqnq8QKuNwlpPUMZCQa+JF2ytYSeEkgEKb+vG3yTJFKz7FvAH7crtAjFODArHUmVizW8YnJc3qixcesxk9Mzn3EvdZDfrZup0pJEGfMdkVd/TKlKpUeFwKFCXmV4sW7YvV7bF82HdEGLnmwrduZSx1bY1tFaP6MnaSYIvnDUSplUo57j//rKXlYrn+sP90FSjzFuebU5jNsHVxZQvzcerFeI+x+v8WTfLcC8Hgeh6daUFPZ2e3DM1TGfDo+2XvwoONKXFN+OLYyoFsMLs2iY4gEUsgpQKwj3kA52+9+kK8s9WDS8MYIBSG6temS429nIjKARk0XUHIplGKDm6Z7pwtVfxGqBj64SZQgAjRr6fC043O5qjxCqnWy026fJwAAQZkNiOvS3gDSLCKZ0XATyFk2XX6Lhk8IEslArbcqBN1wVoTkm51SBPMwjKVd7qRpeOVMjaMgfaGxH/xLosbj0Rv+cn7JXoJhZhwtSu6AzItMaRH3gXOAI3gAkSdRG6eDsC0cTGe4kc5bwD2Z1WJaXmGVGQmYFLod1BqI3sBDxl7g5xw6we6kGL/+thFIu924SN8YA0Ivl9AKEvSMByh03Iv1ByYTvTRiI6FO09nNwKeVwx6wk19gtI7yFFPYfOnYZmODOaQS1jgKnOTF54HNTItr3xt8FudwaeyunbFsa7yhkokK7lr+WSLSyWgG3fdZIJf2wBglb67DOBfdbYA8DRTefmNUw8GNwzjI/wd+LyFC08bUo0kJ23Ya64D1PqH3e1gtk1q4vpRVPdrGOLNx13oGFylyfhPUdE7SA4FGdHQcvNJjdxSOcFOenPbzyGdBHXGJG8WihZS4Ikto5HzWMmG7o2yx/N+cvG3WnveSPz9GUeJPEaI4O7ASI7vWUAD+3udtZRY7V+/dS6StIeVicSZz+Fy3635/YYHP/uauR1AVWLdovNlJMeCscvPTXy/j41lYA3xJgR/TYEX+CthlxKxLF+aZhQMdputfffHYRtTVtl8wJvGVhiWsrtRzmDFk5Jcb+ce26R6P6VOMQzTIA3RDou+1CTBih033B5lc7xWazPwTQHjbVJZmnLG22rVSFH1eNnnq0ejrgYB0C/dXHeWu3b5SrjJlFihnOWfDtomN6JONl/vbnDBmNt0ROQobRYAKtg5tYeW3X2oKhc8FihQAg26D/TzGqhH081PtYAXlHEi1Nf2FpSZOvsPnb1y6VW1jpmPwA6294Nb5LrjH3LtNBKDMuOc0/I5qi0ZCqGBeKEXLh8txGKpEqhDJIFwWfekR7jkQz7b19NkUIqdGLHBgGJuWMmhZOilAeyQg06cW7Gta+/CluzdzN7N3aEYNoBp9JYdkcXe9rBfwCrsnvPbSIa+pLqUwsgXwXu4DPxsVvGeNZ3uaczy/TkdRz2J85p2JwEwOWCecvUqWQ2BX8oZlFipTxALF9I/jwwDPWKJSuUZj7kAphtcduw8ov4hV/jeNtlpiDwJHIo+tDPkXfywgmd5BvWIjxDtJKRr88rEMw511bUtHZOcHc4ApP8Bsz7Z1qmdh498oJbWneFshcHOgeF60LwS6FnaJ76mITQB0tVC4HE5UQdsuzKBbP81QfcrShWL3IcS5hheBVdOkQzffdQDMWEl0JRDWb71byU289jhaqN/69WdwFzzR0DBXnTaU3UhywsUF1erLl/IMpTwXKqB74MJBhrlygMw8K2qS+/yOzFq781CYJtLA7oeF/QYIqXaEKad5Q9ZZU/lhMV+lk1GGRH76qq7dtmPtu2+BouiZ/PudKu/3woLNFHFUQGTqmGUmIUr+FPPA1wSsnhI8NyJcxDuY+a3mvQnfCnPziJilUNv3plkDyUhioB8fzDwOwxwAbi3kHpSebJQ0jCKjFhjAsrFvv3LjhYHwSQDTNZE/m0L+bDGxW2wQ+QWVGnfardrV3Y+lau2pE19VbT3sw17pYX2aCoftSIsGIG+8cCP6bxqFsg5UOJDZtQeHs2gV/h/kHhFOxOa1S3HmTKNOs9gGdEveIb/A6g/kBgd5G3JS1Ki3xt+RCXbfBCWb+pmHn9l+YPgZjsnnJlllg4w7TNjJKI7XJP7/S8U3VD6Z8NnRnD1zQhp0HG6OSYMUa/BAAAVEJMNNrxg9LmFdDVXrftfy55P3v3SN2pLyNHnHhdlLMgHrydbIInf0wo9HcGPU0OnceDDisH0vPmp0KxxZFLAK47uspyXch1s+j1IFdtBfP+zOIxbw/Cw9GtkSFETUQrh1gXHuXFn3+08LGhnBGHzfViV5+Qp5QajR4EnriVmW7LlKNfpPOM4wUipmfGTxjdEU2N3j1pw2cqfTchGiTureMmomq0r6vyAfKDhrFX1O6TrRYAUx5MH96GtSHE/PjSc0iu4JDLA1DOSmTN8PlO4XNEpH9BQfGfEspPuEgZZHUs09kfGwI7azfjnFmbcb9tt2pIBLVkw6MGvkzDAqjbm56dKiKcjbtdV4gfBDGUgQphJMUFREYFojTqwDIc1nngN3aAK1KIiNZYNrlPraKoj70lewFZ8aGQ9AgA4rGFSDb6d+mHe7qOTSFHUx4gkvG9oC7T2NTDF9OPz4W5xqGBLGJrELpVYBM4b6jwocaXNNmR1eJk+GNlHQ/WcXHaNwbKbNKE1VJKWgWVj6Q7AO05aZx/D8Euo0eshZaYyF0UMEwEY52QCA1HJIC+PuC5FSQqx1pQF3Dtqzu+mWe2pNB5NMgfVfNSiw4hDrrjdQMO/fNd11wVoQOWd4GaaB2wJ9JwiVdNvCtM/joFVQ5Rn5gXHaK+xhHp3caKzoUN5fqni7Ll5rRW4CrrUVnX+xdq1awLuwgH9oQsSrD3TdUlxJu0WoS3U09Letxly7LliCYN4tN2My+CfjpEqlkLCDOSCMDy9hSk0tpUANBcMnGsy5lyKC+D3xom0xh+l5laQsXI+YY2i+gocpZLz87U008aKo8SDdulHAz10ALwABfmsEeC5//v5XQJI8qx01Bhdxa+xqn/ffRKZTayL3pWYR7WjgV/L1PN5I2XnglObDo7kOtxJQmgYXSHrIrmpyFvJ3Y2Y1KtzywD/bUYpiuQz2WwIjtj3wI/Hi/YBZPSjctkqnIVdTxA2IVuzezIYZDXwFM4G0wPgYfNHSMTeH2mpczmX+rm4XZZ0cUOl3oEE1ghdg1EnZYK1TQ9rkls8OdzoPksr4N71cVAJftMGdXU/RbBj3nWseR1RPmcczK1VVEmv8yPtxM3iCGP9xIp4X+xqtY4ndm/dF8X9tShBh1343D+U0tYixVw+fQDAJM3fE6TquE2YZtN02d7Atf65cf2HNxbGl6aD2b1R3nsiKdM33CbA4jb+r5hOJndpmZmNv8YXmcIrHqiRXXFtzMMuFNgTEHq1BfNQAj17F8xsTOohrryrsZ/jWqP2kXVwmxq6KycRGOGpEmGj9NRBqp+V3dtFKEKwhnsKERObTB93kxs1JMC+Rl3tGxBZL205/45fjA/XTD7ZGGYq4p1WxQS8GpF1T7KzZS2ouPJl89ueSmceRSPO70UnLJ7RAHcBx5wcOdFLJ4F1c9iqVMhLasgIPViSDXLkHVZAZaRr4TqJkHOvxwfgGFmFccWfvhgjXzyV9BUBIJCWtDQt1ZErwyYgOGHiJAjSQfn9YAnAwvw+K9r7MP+3Axhlr8F7c4cEc/YJoaHQK2GUXwSQ9qyBHazc/FoTY5mXd5Vp1DbGs/AFrUXphJwXMcF6KNSMfnQneVDqtkCf+E8xFgjb9bRqJTlKPLb9jPLrXAOWzrxb3ETF+F9KI3JgfXGhQETyZs5Zivh0rTQZYizTFOngaPtatCojoYA0xZuUqyyyK0V1tWbu52Q+zyaoNy0iK/P2OT6xfQLHyLzLMWbCg24+GnZseShv1W/vTN0mw7XlJGdxeTux7y3XDxFqGDas1VQ/eyxvyOkA3kcm7+NBmT2GpN/2mUIGU5CGzA4LdngH1XUvZ/suo1Eq9+tJkI4PdaO6H/N6Nra31ip6Q4zqf9ya6LCkQ/+IFm1al6/12RDr5Pc/lKgqCVDvwSHVbPdN3GwZmJuPklw81IU/bAkkVlqIGAPqzrYyvy6Al8N+JDKlishs9Z5we1D9eHh2g59FUz/8JmLTaXSR53GyvQfkKyZcWOGBEhF7V2r5FUchpCnMzA+qTg/32DPhasBMO6UFG0yQAAA=",
|
|
"encoding": "base64"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": 0,
|
|
"_transferSize": 0,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "[2606:4700:20::ac43:46a5]",
|
|
"startedDateTime": "2023-02-16T22:46:18.682Z",
|
|
"time": 21.82600000014645,
|
|
"timings": {
|
|
"blocked": 11.639000000017491,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0.5360000000527214,
|
|
"receive": 9.651000000076237,
|
|
"_blocked_queueing": 7.693000000017491
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "_JS_WebRequest_Send",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 2785,
|
|
"columnNumber": 33
|
|
},
|
|
{
|
|
"functionName": "$func21971",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11413019
|
|
},
|
|
{
|
|
"functionName": "$func21942",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11407854
|
|
},
|
|
{
|
|
"functionName": "$func21934",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403138
|
|
},
|
|
{
|
|
"functionName": "$func21936",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403560
|
|
},
|
|
{
|
|
"functionName": "$func21932",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403018
|
|
},
|
|
{
|
|
"functionName": "$func21927",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11402322
|
|
},
|
|
{
|
|
"functionName": "$func21625",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11318317
|
|
},
|
|
{
|
|
"functionName": "$func21422",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11226213
|
|
},
|
|
{
|
|
"functionName": "$func21679",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11336773
|
|
},
|
|
{
|
|
"functionName": "$func21678",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11335832
|
|
},
|
|
{
|
|
"functionName": "$func21677",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11334955
|
|
},
|
|
{
|
|
"functionName": "$func21676",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11334667
|
|
},
|
|
{
|
|
"functionName": "$func21673",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11332489
|
|
},
|
|
{
|
|
"functionName": "$func10048",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 4555545
|
|
},
|
|
{
|
|
"functionName": "$func9057",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 4016630
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717132
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717153
|
|
},
|
|
{
|
|
"functionName": "$func8389",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3714001
|
|
},
|
|
{
|
|
"functionName": "$func8384",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3707621
|
|
},
|
|
{
|
|
"functionName": "$dynCall_v",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 22843700
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20508,
|
|
"columnNumber": 42
|
|
},
|
|
{
|
|
"functionName": "browserIterationFunc",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6211,
|
|
"columnNumber": 35
|
|
},
|
|
{
|
|
"functionName": "runIter",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6313,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6249,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "requestAnimationFrame",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "requestAnimationFrame",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6606,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_rAF",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6161,
|
|
"columnNumber": 24
|
|
},
|
|
{
|
|
"functionName": "_emscripten_set_main_loop",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6257,
|
|
"columnNumber": 29
|
|
},
|
|
{
|
|
"functionName": "$_main",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3705976
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 19848,
|
|
"columnNumber": 38
|
|
},
|
|
{
|
|
"functionName": "callMain",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20954,
|
|
"columnNumber": 37
|
|
},
|
|
{
|
|
"functionName": "doRun",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20991,
|
|
"columnNumber": 67
|
|
},
|
|
{
|
|
"functionName": "run",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 21003,
|
|
"columnNumber": 12
|
|
},
|
|
{
|
|
"functionName": "runCaller",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20940,
|
|
"columnNumber": 34
|
|
},
|
|
{
|
|
"functionName": "removeRunDependency",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 971,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 11,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "doCallback",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4811,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "done",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4823,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "reconcile",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3931,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3716,
|
|
"columnNumber": 26
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3807,
|
|
"columnNumber": 35
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "IndexedDB",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3804,
|
|
"columnNumber": 26
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3752,
|
|
"columnNumber": 16
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "IndexedDB",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "getDB",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3727,
|
|
"columnNumber": 40
|
|
},
|
|
{
|
|
"functionName": "getRemoteSet",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3794,
|
|
"columnNumber": 18
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3712,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "getLocalSet",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3787,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "syncfs",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3710,
|
|
"columnNumber": 18
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4830,
|
|
"columnNumber": 27
|
|
},
|
|
{
|
|
"functionName": "syncfs",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4826,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 10,
|
|
"columnNumber": 15
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 14,
|
|
"columnNumber": 8
|
|
},
|
|
{
|
|
"functionName": "callRuntimeCallbacks",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 828,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "preRun",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 858,
|
|
"columnNumber": 8
|
|
},
|
|
{
|
|
"functionName": "run",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20980,
|
|
"columnNumber": 8
|
|
},
|
|
{
|
|
"functionName": "runCaller",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20940,
|
|
"columnNumber": 34
|
|
},
|
|
{
|
|
"functionName": "removeRunDependency",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 971,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "receiveInstance",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1085,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "receiveInstantiatedSource",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1098,
|
|
"columnNumber": 16
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "instantiateArrayBuffer",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1104,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "doNativeWasm",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1118,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1181,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 19155,
|
|
"columnNumber": 27
|
|
},
|
|
{
|
|
"functionName": "UnityLoader.loadCode.Module",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 193,
|
|
"columnNumber": 1705
|
|
},
|
|
{
|
|
"functionName": "o.onload",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1754
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "loadCode",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1719
|
|
},
|
|
{
|
|
"functionName": "processWasmFrameworkJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 193,
|
|
"columnNumber": 1620
|
|
},
|
|
{
|
|
"functionName": "a.callback",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 463
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "a.complete",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 831
|
|
},
|
|
{
|
|
"functionName": "processWasmCodeJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 193,
|
|
"columnNumber": 1558
|
|
},
|
|
{
|
|
"functionName": "a.callback",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 463
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "a.complete",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 831
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 358
|
|
},
|
|
{
|
|
"functionName": "r.worker.onmessage",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 169,
|
|
"columnNumber": 1034
|
|
}
|
|
],
|
|
"parentId": {
|
|
"id": "3",
|
|
"debuggerId": "172638723035444538.4108171719878844918"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "xhr",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "POST",
|
|
"url": "https://config.uca.cloud.unity3d.com/",
|
|
"httpVersion": "h3",
|
|
"headers": [
|
|
{
|
|
"name": ":method",
|
|
"value": "POST"
|
|
},
|
|
{
|
|
"name": ":authority",
|
|
"value": "config.uca.cloud.unity3d.com"
|
|
},
|
|
{
|
|
"name": ":scheme",
|
|
"value": "https"
|
|
},
|
|
{
|
|
"name": ":path",
|
|
"value": "/"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "356"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "accept",
|
|
"value": "*/*"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "user-agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
},
|
|
{
|
|
"name": "origin",
|
|
"value": "https://watchdocumentaries.com"
|
|
},
|
|
{
|
|
"name": "sec-fetch-site",
|
|
"value": "cross-site"
|
|
},
|
|
{
|
|
"name": "sec-fetch-mode",
|
|
"value": "cors"
|
|
},
|
|
{
|
|
"name": "sec-fetch-dest",
|
|
"value": "empty"
|
|
},
|
|
{
|
|
"name": "referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "accept-encoding",
|
|
"value": "gzip, deflate, br"
|
|
},
|
|
{
|
|
"name": "accept-language",
|
|
"value": "en-US,en;q=0.9"
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 356,
|
|
"postData": {
|
|
"mimeType": "application/json",
|
|
"text": "{\"common\":{\"appid\":\"afad0537-05cc-4160-9a18-fcbd859278fc\",\"userid\":\"9b79bc13f35d82f4c8a50631abc6c252\",\"sessionid\":2569031393533231031,\"platform\":\"WebGL\",\"platformid\":17,\"sdk_ver\":\"u2018.4.16f1\",\"session_count\":1,\"localprojectid\":\"bda2f2681346279458544c2799261ab8\",\"build_guid\":\"64dd75120425c1d4aa9c31fce785ed8a\",\"deviceid\":\"n/a\",\"t_since_start\":11210099}}\n"
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"statusText": "",
|
|
"httpVersion": "h3",
|
|
"headers": [
|
|
{
|
|
"name": "date",
|
|
"value": "Thu, 16 Feb 2023 22:46:34 GMT"
|
|
},
|
|
{
|
|
"name": "content-type",
|
|
"value": "application/json;charset=utf-8"
|
|
},
|
|
{
|
|
"name": "access-control-allow-origin",
|
|
"value": "*"
|
|
},
|
|
{
|
|
"name": "content-length",
|
|
"value": "304"
|
|
},
|
|
{
|
|
"name": "server",
|
|
"value": "Jetty(9.4.z-SNAPSHOT)"
|
|
},
|
|
{
|
|
"name": "via",
|
|
"value": "1.1 google"
|
|
},
|
|
{
|
|
"name": "alt-svc",
|
|
"value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"
|
|
}
|
|
],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 304,
|
|
"mimeType": "application/json",
|
|
"text": "{\"prefs\":{},\"analytics\":{\"enabled\":true},\"connect\":{\"limit_user_tracking\":false,\"player_opted_out\":false,\"enabled\":true},\"performance\":{\"enabled\":true},\"dynamic\":{\"coreBusinessMetrics\":{\"enabled\":true,\"timeToWaitForUserInfoS\":60},\"analytics\":{\"shouldCollectAutomation\":true,\"timeToWaitForUserInfoS\":60}}}"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 319,
|
|
"_error": null
|
|
},
|
|
"serverIPAddress": "34.111.113.40",
|
|
"startedDateTime": "2023-02-16T22:46:34.172Z",
|
|
"time": 111.79700000002413,
|
|
"timings": {
|
|
"blocked": 18.99900000012167,
|
|
"dns": 0,
|
|
"ssl": -1,
|
|
"connect": 0,
|
|
"send": 11.133,
|
|
"wait": 72.14100000007402,
|
|
"receive": 9.523999999828447,
|
|
"_blocked_queueing": 18.99900000012167
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "_JS_WebRequest_Send",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 2785,
|
|
"columnNumber": 33
|
|
},
|
|
{
|
|
"functionName": "$func21971",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11413019
|
|
},
|
|
{
|
|
"functionName": "$func21942",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11407854
|
|
},
|
|
{
|
|
"functionName": "$func21934",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403138
|
|
},
|
|
{
|
|
"functionName": "$func21936",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403560
|
|
},
|
|
{
|
|
"functionName": "$func21932",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403018
|
|
},
|
|
{
|
|
"functionName": "$func21927",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11402322
|
|
},
|
|
{
|
|
"functionName": "$func21625",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11318317
|
|
},
|
|
{
|
|
"functionName": "$func21422",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11226213
|
|
},
|
|
{
|
|
"functionName": "$func21415",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11224025
|
|
},
|
|
{
|
|
"functionName": "$func21409",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11221590
|
|
},
|
|
{
|
|
"functionName": "$func21630",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11319400
|
|
},
|
|
{
|
|
"functionName": "$func21536",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11281407
|
|
},
|
|
{
|
|
"functionName": "$func21535",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11279487
|
|
},
|
|
{
|
|
"functionName": "$func21534",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11279378
|
|
},
|
|
{
|
|
"functionName": "$func21598",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11310363
|
|
},
|
|
{
|
|
"functionName": "$func21342",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11199859
|
|
},
|
|
{
|
|
"functionName": "$func21343",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11199953
|
|
},
|
|
{
|
|
"functionName": "$func21354",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11201721
|
|
},
|
|
{
|
|
"functionName": "$func21527",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11275666
|
|
},
|
|
{
|
|
"functionName": "$func21349",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11200958
|
|
},
|
|
{
|
|
"functionName": "$func21675",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11332871
|
|
},
|
|
{
|
|
"functionName": "$func21674",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11332498
|
|
},
|
|
{
|
|
"functionName": "$func10048",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 4555545
|
|
},
|
|
{
|
|
"functionName": "$func9057",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 4016630
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717132
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717153
|
|
},
|
|
{
|
|
"functionName": "$func8389",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3714001
|
|
},
|
|
{
|
|
"functionName": "$func8384",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3707621
|
|
},
|
|
{
|
|
"functionName": "$dynCall_v",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 22843700
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20508,
|
|
"columnNumber": 42
|
|
},
|
|
{
|
|
"functionName": "browserIterationFunc",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6211,
|
|
"columnNumber": 35
|
|
},
|
|
{
|
|
"functionName": "runIter",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6313,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6249,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "requestAnimationFrame",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "requestAnimationFrame",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6606,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_rAF",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6161,
|
|
"columnNumber": 24
|
|
},
|
|
{
|
|
"functionName": "_emscripten_set_main_loop",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6257,
|
|
"columnNumber": 29
|
|
},
|
|
{
|
|
"functionName": "$_main",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3705976
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 19848,
|
|
"columnNumber": 38
|
|
},
|
|
{
|
|
"functionName": "callMain",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20954,
|
|
"columnNumber": 37
|
|
},
|
|
{
|
|
"functionName": "doRun",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20991,
|
|
"columnNumber": 67
|
|
},
|
|
{
|
|
"functionName": "run",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 21003,
|
|
"columnNumber": 12
|
|
},
|
|
{
|
|
"functionName": "runCaller",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20940,
|
|
"columnNumber": 34
|
|
},
|
|
{
|
|
"functionName": "removeRunDependency",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 971,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 11,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "doCallback",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4811,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "done",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4823,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "reconcile",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3931,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3716,
|
|
"columnNumber": 26
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3807,
|
|
"columnNumber": 35
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "IndexedDB",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3804,
|
|
"columnNumber": 26
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3752,
|
|
"columnNumber": 16
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "IndexedDB",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "getDB",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3727,
|
|
"columnNumber": 40
|
|
},
|
|
{
|
|
"functionName": "getRemoteSet",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3794,
|
|
"columnNumber": 18
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3712,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "getLocalSet",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3787,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "syncfs",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3710,
|
|
"columnNumber": 18
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4830,
|
|
"columnNumber": 27
|
|
},
|
|
{
|
|
"functionName": "syncfs",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4826,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 10,
|
|
"columnNumber": 15
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 14,
|
|
"columnNumber": 8
|
|
},
|
|
{
|
|
"functionName": "callRuntimeCallbacks",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 828,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "preRun",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 858,
|
|
"columnNumber": 8
|
|
},
|
|
{
|
|
"functionName": "run",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20980,
|
|
"columnNumber": 8
|
|
},
|
|
{
|
|
"functionName": "runCaller",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20940,
|
|
"columnNumber": 34
|
|
},
|
|
{
|
|
"functionName": "removeRunDependency",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 971,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "receiveInstance",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1085,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "receiveInstantiatedSource",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1098,
|
|
"columnNumber": 16
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "instantiateArrayBuffer",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1104,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "doNativeWasm",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1118,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1181,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 19155,
|
|
"columnNumber": 27
|
|
},
|
|
{
|
|
"functionName": "UnityLoader.loadCode.Module",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 193,
|
|
"columnNumber": 1705
|
|
},
|
|
{
|
|
"functionName": "o.onload",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1754
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "loadCode",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1719
|
|
},
|
|
{
|
|
"functionName": "processWasmFrameworkJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 193,
|
|
"columnNumber": 1620
|
|
},
|
|
{
|
|
"functionName": "a.callback",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 463
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "a.complete",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 831
|
|
},
|
|
{
|
|
"functionName": "processWasmCodeJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 193,
|
|
"columnNumber": 1558
|
|
},
|
|
{
|
|
"functionName": "a.callback",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 463
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "a.complete",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 831
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 358
|
|
},
|
|
{
|
|
"functionName": "r.worker.onmessage",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 169,
|
|
"columnNumber": 1034
|
|
}
|
|
],
|
|
"parentId": {
|
|
"id": "3",
|
|
"debuggerId": "172638723035444538.4108171719878844918"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "xhr",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "POST",
|
|
"url": "https://cdp.cloud.unity3d.com/v1/events",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "event_count",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "request_ts",
|
|
"value": "1676587595698"
|
|
},
|
|
{
|
|
"name": "data_retry_count",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "expired_session_dropped",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"name": "Accept",
|
|
"value": "*/*"
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "continuous_request",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "data_block_id",
|
|
"value": "ad3fc35146e3b9f5181edd7910c5b980"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 439,
|
|
"postData": {
|
|
"mimeType": "application/json",
|
|
"text": "{\"common\":{\"appid\":\"afad0537-05cc-4160-9a18-fcbd859278fc\",\"userid\":\"9b79bc13f35d82f4c8a50631abc6c252\",\"sessionid\":2569031393533231031,\"platform\":\"WebGL\",\"platformid\":17,\"sdk_ver\":\"u2018.4.16f1\",\"session_count\":1,\"localprojectid\":\"bda2f2681346279458544c2799261ab8\",\"build_guid\":\"64dd75120425c1d4aa9c31fce785ed8a\",\"deviceid\":\"n/a\"}}\n{\"type\":\"analytics.appStart.v1\",\"msg\":{\"previous_sessionid\":0,\"ts\":1676587595676,\"t_since_start\":12728799}}\n"
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_BLOCKED_BY_CLIENT"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:46:35.708Z",
|
|
"time": 155.01799999992727,
|
|
"timings": {
|
|
"blocked": 155.01799999992727,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "_JS_WebRequest_Send",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 2785,
|
|
"columnNumber": 33
|
|
},
|
|
{
|
|
"functionName": "$func21971",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11413019
|
|
},
|
|
{
|
|
"functionName": "$func21942",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11407854
|
|
},
|
|
{
|
|
"functionName": "$func21934",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403138
|
|
},
|
|
{
|
|
"functionName": "$func21936",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403560
|
|
},
|
|
{
|
|
"functionName": "$func21932",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403018
|
|
},
|
|
{
|
|
"functionName": "$func21927",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11402322
|
|
},
|
|
{
|
|
"functionName": "$func21625",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11318317
|
|
},
|
|
{
|
|
"functionName": "$func21422",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11226213
|
|
},
|
|
{
|
|
"functionName": "$func21415",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11224025
|
|
},
|
|
{
|
|
"functionName": "$func21411",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11222698
|
|
},
|
|
{
|
|
"functionName": "$func21408",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11220369
|
|
},
|
|
{
|
|
"functionName": "$func21404",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11219003
|
|
},
|
|
{
|
|
"functionName": "$func21403",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11218797
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717132
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717153
|
|
},
|
|
{
|
|
"functionName": "$func8389",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3714001
|
|
},
|
|
{
|
|
"functionName": "$func8384",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3707621
|
|
},
|
|
{
|
|
"functionName": "$dynCall_v",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 22843700
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20508,
|
|
"columnNumber": 42
|
|
},
|
|
{
|
|
"functionName": "browserIterationFunc",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6211,
|
|
"columnNumber": 35
|
|
},
|
|
{
|
|
"functionName": "runIter",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6313,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6249,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "requestAnimationFrame",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "requestAnimationFrame",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6606,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_rAF",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6161,
|
|
"columnNumber": 24
|
|
},
|
|
{
|
|
"functionName": "_emscripten_set_main_loop",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6257,
|
|
"columnNumber": 29
|
|
},
|
|
{
|
|
"functionName": "$_main",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3705976
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 19848,
|
|
"columnNumber": 38
|
|
},
|
|
{
|
|
"functionName": "callMain",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20954,
|
|
"columnNumber": 37
|
|
},
|
|
{
|
|
"functionName": "doRun",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20991,
|
|
"columnNumber": 67
|
|
},
|
|
{
|
|
"functionName": "run",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 21003,
|
|
"columnNumber": 12
|
|
},
|
|
{
|
|
"functionName": "runCaller",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20940,
|
|
"columnNumber": 34
|
|
},
|
|
{
|
|
"functionName": "removeRunDependency",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 971,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 11,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "doCallback",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4811,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "done",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4823,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "reconcile",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3931,
|
|
"columnNumber": 23
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3716,
|
|
"columnNumber": 26
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3807,
|
|
"columnNumber": 35
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "IndexedDB",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3804,
|
|
"columnNumber": 26
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3752,
|
|
"columnNumber": 16
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "IndexedDB",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "getDB",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3727,
|
|
"columnNumber": 40
|
|
},
|
|
{
|
|
"functionName": "getRemoteSet",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3794,
|
|
"columnNumber": 18
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3712,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "getLocalSet",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3787,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "syncfs",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 3710,
|
|
"columnNumber": 18
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4830,
|
|
"columnNumber": 27
|
|
},
|
|
{
|
|
"functionName": "syncfs",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 4826,
|
|
"columnNumber": 19
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 10,
|
|
"columnNumber": 15
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 14,
|
|
"columnNumber": 8
|
|
},
|
|
{
|
|
"functionName": "callRuntimeCallbacks",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 828,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "preRun",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 858,
|
|
"columnNumber": 8
|
|
},
|
|
{
|
|
"functionName": "run",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20980,
|
|
"columnNumber": 8
|
|
},
|
|
{
|
|
"functionName": "runCaller",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20940,
|
|
"columnNumber": 34
|
|
},
|
|
{
|
|
"functionName": "removeRunDependency",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 971,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "receiveInstance",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1085,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "receiveInstantiatedSource",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1098,
|
|
"columnNumber": 16
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "Promise.then",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "instantiateArrayBuffer",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1104,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "doNativeWasm",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1118,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 1181,
|
|
"columnNumber": 22
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 19155,
|
|
"columnNumber": 27
|
|
},
|
|
{
|
|
"functionName": "UnityLoader.loadCode.Module",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 193,
|
|
"columnNumber": 1705
|
|
},
|
|
{
|
|
"functionName": "o.onload",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1754
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "load",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "loadCode",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 192,
|
|
"columnNumber": 1719
|
|
},
|
|
{
|
|
"functionName": "processWasmFrameworkJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 193,
|
|
"columnNumber": 1620
|
|
},
|
|
{
|
|
"functionName": "a.callback",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 463
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "a.complete",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 831
|
|
},
|
|
{
|
|
"functionName": "processWasmCodeJob",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 193,
|
|
"columnNumber": 1558
|
|
},
|
|
{
|
|
"functionName": "a.callback",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 463
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "a.complete",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 187,
|
|
"columnNumber": 831
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 194,
|
|
"columnNumber": 358
|
|
},
|
|
{
|
|
"functionName": "r.worker.onmessage",
|
|
"scriptId": "29",
|
|
"url": "https://watchdocumentaries.com/wp-content/uploads/games/rocket-league/UnityLoader.js",
|
|
"lineNumber": 169,
|
|
"columnNumber": 1034
|
|
}
|
|
],
|
|
"parentId": {
|
|
"id": "3",
|
|
"debuggerId": "172638723035444538.4108171719878844918"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "xhr",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "POST",
|
|
"url": "https://cdp.cloud.unity3d.com/v1/events",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "event_count",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "request_ts",
|
|
"value": "1676587596115"
|
|
},
|
|
{
|
|
"name": "data_retry_count",
|
|
"value": "2"
|
|
},
|
|
{
|
|
"name": "expired_session_dropped",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"name": "Accept",
|
|
"value": "*/*"
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "continuous_request",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "data_block_id",
|
|
"value": "ad3fc35146e3b9f5181edd7910c5b980"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 439,
|
|
"postData": {
|
|
"mimeType": "application/json",
|
|
"text": "{\"common\":{\"appid\":\"afad0537-05cc-4160-9a18-fcbd859278fc\",\"userid\":\"9b79bc13f35d82f4c8a50631abc6c252\",\"sessionid\":2569031393533231031,\"platform\":\"WebGL\",\"platformid\":17,\"sdk_ver\":\"u2018.4.16f1\",\"session_count\":1,\"localprojectid\":\"bda2f2681346279458544c2799261ab8\",\"build_guid\":\"64dd75120425c1d4aa9c31fce785ed8a\",\"deviceid\":\"n/a\"}}\n{\"type\":\"analytics.appStart.v1\",\"msg\":{\"previous_sessionid\":0,\"ts\":1676587595676,\"t_since_start\":12728799}}\n"
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_BLOCKED_BY_CLIENT"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:46:36.121Z",
|
|
"time": 487.20400000001973,
|
|
"timings": {
|
|
"blocked": 487.20400000001973,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "_JS_WebRequest_Send",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 2785,
|
|
"columnNumber": 33
|
|
},
|
|
{
|
|
"functionName": "$func21971",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11413019
|
|
},
|
|
{
|
|
"functionName": "$func21942",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11407854
|
|
},
|
|
{
|
|
"functionName": "$func21934",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403138
|
|
},
|
|
{
|
|
"functionName": "$func21936",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403560
|
|
},
|
|
{
|
|
"functionName": "$func21932",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403018
|
|
},
|
|
{
|
|
"functionName": "$func21927",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11402322
|
|
},
|
|
{
|
|
"functionName": "$func21625",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11318317
|
|
},
|
|
{
|
|
"functionName": "$func21422",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11226213
|
|
},
|
|
{
|
|
"functionName": "$func21415",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11224025
|
|
},
|
|
{
|
|
"functionName": "$func21411",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11222698
|
|
},
|
|
{
|
|
"functionName": "$func21408",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11220369
|
|
},
|
|
{
|
|
"functionName": "$func21404",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11219003
|
|
},
|
|
{
|
|
"functionName": "$func21403",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11218797
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717132
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717153
|
|
},
|
|
{
|
|
"functionName": "$func8389",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3714001
|
|
},
|
|
{
|
|
"functionName": "$func8384",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3707621
|
|
},
|
|
{
|
|
"functionName": "$dynCall_v",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 22843700
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20508,
|
|
"columnNumber": 42
|
|
},
|
|
{
|
|
"functionName": "browserIterationFunc",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6211,
|
|
"columnNumber": 35
|
|
},
|
|
{
|
|
"functionName": "runIter",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6313,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6249,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "xhr",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "POST",
|
|
"url": "https://cdp.cloud.unity3d.com/v1/events",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "event_count",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "request_ts",
|
|
"value": "1676587599228"
|
|
},
|
|
{
|
|
"name": "data_retry_count",
|
|
"value": "3"
|
|
},
|
|
{
|
|
"name": "expired_session_dropped",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"name": "Accept",
|
|
"value": "*/*"
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "continuous_request",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "data_block_id",
|
|
"value": "ad3fc35146e3b9f5181edd7910c5b980"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 439,
|
|
"postData": {
|
|
"mimeType": "application/json",
|
|
"text": "{\"common\":{\"appid\":\"afad0537-05cc-4160-9a18-fcbd859278fc\",\"userid\":\"9b79bc13f35d82f4c8a50631abc6c252\",\"sessionid\":2569031393533231031,\"platform\":\"WebGL\",\"platformid\":17,\"sdk_ver\":\"u2018.4.16f1\",\"session_count\":1,\"localprojectid\":\"bda2f2681346279458544c2799261ab8\",\"build_guid\":\"64dd75120425c1d4aa9c31fce785ed8a\",\"deviceid\":\"n/a\"}}\n{\"type\":\"analytics.appStart.v1\",\"msg\":{\"previous_sessionid\":0,\"ts\":1676587595676,\"t_since_start\":12728799}}\n"
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_BLOCKED_BY_CLIENT"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:46:39.231Z",
|
|
"time": 148.4689999999773,
|
|
"timings": {
|
|
"blocked": 148.4689999999773,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "_JS_WebRequest_Send",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 2785,
|
|
"columnNumber": 33
|
|
},
|
|
{
|
|
"functionName": "$func21971",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11413019
|
|
},
|
|
{
|
|
"functionName": "$func21942",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11407854
|
|
},
|
|
{
|
|
"functionName": "$func21934",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403138
|
|
},
|
|
{
|
|
"functionName": "$func21936",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403560
|
|
},
|
|
{
|
|
"functionName": "$func21932",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403018
|
|
},
|
|
{
|
|
"functionName": "$func21927",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11402322
|
|
},
|
|
{
|
|
"functionName": "$func21625",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11318317
|
|
},
|
|
{
|
|
"functionName": "$func21422",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11226213
|
|
},
|
|
{
|
|
"functionName": "$func21415",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11224025
|
|
},
|
|
{
|
|
"functionName": "$func21411",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11222698
|
|
},
|
|
{
|
|
"functionName": "$func21408",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11220369
|
|
},
|
|
{
|
|
"functionName": "$func21404",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11219003
|
|
},
|
|
{
|
|
"functionName": "$func21403",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11218797
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717132
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717153
|
|
},
|
|
{
|
|
"functionName": "$func8389",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3714001
|
|
},
|
|
{
|
|
"functionName": "$func8384",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3707621
|
|
},
|
|
{
|
|
"functionName": "$dynCall_v",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 22843700
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20508,
|
|
"columnNumber": 42
|
|
},
|
|
{
|
|
"functionName": "browserIterationFunc",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6211,
|
|
"columnNumber": 35
|
|
},
|
|
{
|
|
"functionName": "runIter",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6313,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6249,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "xhr",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "POST",
|
|
"url": "https://cdp.cloud.unity3d.com/v1/events",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "event_count",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "request_ts",
|
|
"value": "1676587628993"
|
|
},
|
|
{
|
|
"name": "data_retry_count",
|
|
"value": "4"
|
|
},
|
|
{
|
|
"name": "expired_session_dropped",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"name": "Accept",
|
|
"value": "*/*"
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "continuous_request",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "data_block_id",
|
|
"value": "ad3fc35146e3b9f5181edd7910c5b980"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 439,
|
|
"postData": {
|
|
"mimeType": "application/json",
|
|
"text": "{\"common\":{\"appid\":\"afad0537-05cc-4160-9a18-fcbd859278fc\",\"userid\":\"9b79bc13f35d82f4c8a50631abc6c252\",\"sessionid\":2569031393533231031,\"platform\":\"WebGL\",\"platformid\":17,\"sdk_ver\":\"u2018.4.16f1\",\"session_count\":1,\"localprojectid\":\"bda2f2681346279458544c2799261ab8\",\"build_guid\":\"64dd75120425c1d4aa9c31fce785ed8a\",\"deviceid\":\"n/a\"}}\n{\"type\":\"analytics.appStart.v1\",\"msg\":{\"previous_sessionid\":0,\"ts\":1676587595676,\"t_since_start\":12728799}}\n"
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_BLOCKED_BY_CLIENT"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:47:08.998Z",
|
|
"time": 56.241999999883774,
|
|
"timings": {
|
|
"blocked": 56.241999999883774,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
},
|
|
{
|
|
"_initiator": {
|
|
"type": "script",
|
|
"stack": {
|
|
"callFrames": [
|
|
{
|
|
"functionName": "_JS_WebRequest_Send",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 2785,
|
|
"columnNumber": 33
|
|
},
|
|
{
|
|
"functionName": "$func21971",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11413019
|
|
},
|
|
{
|
|
"functionName": "$func21942",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11407854
|
|
},
|
|
{
|
|
"functionName": "$func21934",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403138
|
|
},
|
|
{
|
|
"functionName": "$func21936",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403560
|
|
},
|
|
{
|
|
"functionName": "$func21932",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11403018
|
|
},
|
|
{
|
|
"functionName": "$func21927",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11402322
|
|
},
|
|
{
|
|
"functionName": "$func21625",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11318317
|
|
},
|
|
{
|
|
"functionName": "$func21422",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11226213
|
|
},
|
|
{
|
|
"functionName": "$func21415",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11224025
|
|
},
|
|
{
|
|
"functionName": "$func21411",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11222698
|
|
},
|
|
{
|
|
"functionName": "$func21408",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11220369
|
|
},
|
|
{
|
|
"functionName": "$func21404",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11219003
|
|
},
|
|
{
|
|
"functionName": "$func21403",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 11218797
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717132
|
|
},
|
|
{
|
|
"functionName": "$func8395",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3717153
|
|
},
|
|
{
|
|
"functionName": "$func8389",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3714001
|
|
},
|
|
{
|
|
"functionName": "$func8384",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 3707621
|
|
},
|
|
{
|
|
"functionName": "$dynCall_v",
|
|
"scriptId": "31",
|
|
"url": "wasm://wasm/0658c31a",
|
|
"lineNumber": 0,
|
|
"columnNumber": 22843700
|
|
},
|
|
{
|
|
"functionName": "",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 20508,
|
|
"columnNumber": 42
|
|
},
|
|
{
|
|
"functionName": "browserIterationFunc",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6211,
|
|
"columnNumber": 35
|
|
},
|
|
{
|
|
"functionName": "runIter",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6313,
|
|
"columnNumber": 20
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6249,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
],
|
|
"parent": {
|
|
"description": "setTimeout",
|
|
"callFrames": [
|
|
{
|
|
"functionName": "Browser_mainLoop_scheduler_setTimeout",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6156,
|
|
"columnNumber": 16
|
|
},
|
|
{
|
|
"functionName": "Browser_mainLoop_runner",
|
|
"scriptId": "30",
|
|
"url": "blob:https://watchdocumentaries.com/b6624eda-0ded-4c6e-9e78-a552f9997066",
|
|
"lineNumber": 6252,
|
|
"columnNumber": 29
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_priority": "High",
|
|
"_resourceType": "xhr",
|
|
"cache": {},
|
|
"pageref": "page_1",
|
|
"request": {
|
|
"method": "POST",
|
|
"url": "https://cdp.cloud.unity3d.com/v1/events",
|
|
"httpVersion": "",
|
|
"headers": [
|
|
{
|
|
"name": "sec-ch-ua",
|
|
"value": "\"Google Chrome\";v=\"93\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"93\""
|
|
},
|
|
{
|
|
"name": "event_count",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "request_ts",
|
|
"value": "1676587688949"
|
|
},
|
|
{
|
|
"name": "data_retry_count",
|
|
"value": "5"
|
|
},
|
|
{
|
|
"name": "expired_session_dropped",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-mobile",
|
|
"value": "?0"
|
|
},
|
|
{
|
|
"name": "User-Agent",
|
|
"value": "Mozilla/5.0 (X11; CrOS x86_64 14092.77.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.107 Safari/537.36"
|
|
},
|
|
{
|
|
"name": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"name": "Accept",
|
|
"value": "*/*"
|
|
},
|
|
{
|
|
"name": "Referer",
|
|
"value": "https://watchdocumentaries.com/"
|
|
},
|
|
{
|
|
"name": "continuous_request",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"name": "data_block_id",
|
|
"value": "ad3fc35146e3b9f5181edd7910c5b980"
|
|
},
|
|
{
|
|
"name": "sec-ch-ua-platform",
|
|
"value": "\"Chrome OS\""
|
|
}
|
|
],
|
|
"queryString": [],
|
|
"cookies": [],
|
|
"headersSize": -1,
|
|
"bodySize": 439,
|
|
"postData": {
|
|
"mimeType": "application/json",
|
|
"text": "{\"common\":{\"appid\":\"afad0537-05cc-4160-9a18-fcbd859278fc\",\"userid\":\"9b79bc13f35d82f4c8a50631abc6c252\",\"sessionid\":2569031393533231031,\"platform\":\"WebGL\",\"platformid\":17,\"sdk_ver\":\"u2018.4.16f1\",\"session_count\":1,\"localprojectid\":\"bda2f2681346279458544c2799261ab8\",\"build_guid\":\"64dd75120425c1d4aa9c31fce785ed8a\",\"deviceid\":\"n/a\"}}\n{\"type\":\"analytics.appStart.v1\",\"msg\":{\"previous_sessionid\":0,\"ts\":1676587595676,\"t_since_start\":12728799}}\n"
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 0,
|
|
"statusText": "",
|
|
"httpVersion": "",
|
|
"headers": [],
|
|
"cookies": [],
|
|
"content": {
|
|
"size": 0,
|
|
"mimeType": "x-unknown"
|
|
},
|
|
"redirectURL": "",
|
|
"headersSize": -1,
|
|
"bodySize": -1,
|
|
"_transferSize": 0,
|
|
"_error": "net::ERR_BLOCKED_BY_CLIENT"
|
|
},
|
|
"serverIPAddress": "",
|
|
"startedDateTime": "2023-02-16T22:48:08.956Z",
|
|
"time": 52.2000000000844,
|
|
"timings": {
|
|
"blocked": 52.2000000000844,
|
|
"dns": -1,
|
|
"ssl": -1,
|
|
"connect": -1,
|
|
"send": 0,
|
|
"wait": 0,
|
|
"receive": 0,
|
|
"_blocked_queueing": -1
|
|
}
|
|
}
|
|
]
|
|
}
|
|
} |