2.1 sec in total
44 ms
1.3 sec
739 ms
Click here to check amazing Best Enhancement Reviews content for United States. Otherwise, check out these important facts you probably never knew about bestenhancementreviews.com
We have reviews of every male enhancement pill and product on the market. Find out which ones work and which don't with our comprehensive reviews.
Visit bestenhancementreviews.comWe analyzed Bestenhancementreviews.com page load time and found that the first response time was 44 ms and then it took 2 sec to load all DOM resources and completely render a web page. This is quite a good result, as only 40% of websites can load faster.
bestenhancementreviews.com performance score
name
value
score
weighting
Value2.7 s
62/100
10%
Value4.3 s
42/100
25%
Value4.3 s
76/100
10%
Value50 ms
100/100
30%
Value0
100/100
15%
Value6.4 s
60/100
10%
44 ms
47 ms
372 ms
16 ms
34 ms
Our browser made a total of 105 requests to load all elements on the main page. We found that 65% of them (68 requests) were addressed to the original Bestenhancementreviews.com, 16% (17 requests) were made to and 4% (4 requests) were made to Forms.aweber.com. The less responsive or slowest element that took the longest time to load (392 ms) belongs to the original domain Bestenhancementreviews.com.
Page size can be reduced by 233.0 kB (19%)
1.2 MB
968.0 kB
In fact, the total size of Bestenhancementreviews.com main page is 1.2 MB. This result falls beyond the top 1M of websites and identifies a large and not optimized web page that may take ages to load. 65% of websites need less resources to load. Images take 879.8 kB which makes up the majority of the site volume.
Potential reduce by 190.7 kB
HTML content can be minified and compressed by a website’s server. The most efficient way is to compress content using GZIP which reduces data amount travelling through the network between server and browser. HTML code on this page is well minified. It is highly recommended that content of this web page should be compressed using GZIP, as it can save up to 190.7 kB or 82% of the original size.
Potential reduce by 41.3 kB
Image size optimization can help to speed up a website loading time. The chart above shows the difference between the size before and after optimization. Best Enhancement Reviews images are well optimized though.
Potential reduce by 248 B
It’s better to minify JavaScript in order to improve website performance. The diagram shows the current total size of all JavaScript files against the prospective JavaScript size after its minification and compression. This website has mostly compressed JavaScripts.
Potential reduce by 674 B
CSS files minification is very important to reduce a web page rendering time. The faster CSS files can load, the earlier a page can be rendered. Bestenhancementreviews.com has all CSS files already compressed.
Number of requests can be reduced by 48 (56%)
85
37
The browser has sent 85 CSS, Javascripts, AJAX and image requests in order to completely render the main page of Best Enhancement Reviews. We recommend that multiple CSS and JavaScript files should be merged into one by each type, as it can help reduce assets requests from 26 to 1 for JavaScripts and from 19 to 1 for CSS and as a result speed up the page load time.
bestenhancementreviews.com
44 ms
bestenhancementreviews.com
47 ms
www.bestenhancementreviews.com
372 ms
ITE6IXMoIlx1ZDgzY1x1ZGRmYVx1ZDgzY1x1ZGRmMyIsIlx1ZDgzY1x1ZGRmYVx1MjAwYlx1ZDgzY1x1ZGRmMyIpJiYhcygiXHVkODNjXHVkZmY0XHVkYjQwXHVkYzY3XHVkYjQwXHVkYzYyXHVkYjQwXHVkYzY1XHVkYjQwXHVkYzZlXHVkYjQwXHVkYzY3XHVkYjQwXHVkYzdmIiwiXHVkODNjXHVkZmY0XHUyMDBiXHVkYjQwXHVkYzY3XHUyMDBiXHVkYjQwXHVkYzYyXHUyMDBiXHVkYjQwXHVkYzY1XHUyMDBiXHVkYjQwXHVkYzZlXHUyMDBiXHVkYjQwXHVkYzY3XHUyMDBiXHVkYjQwXHVkYzdmIik7Y2FzZSJlbW9qaSI6cmV0dXJuIXMoIlx1ZDgzZVx1ZGVmMVx1ZDgzY1x1ZGZmYlx1MjAwZFx1ZDgzZVx1ZGVmMlx1ZDgzY1x1ZGZmZiIsIlx1ZDgzZVx1ZGVmMVx1ZDgzY1x1ZGZmYlx1MjAwYlx1ZDgzZVx1ZGVmMlx1ZDgzY1x1ZGZmZiIpfXJldHVybiExfShvW3JdKSx0LnN1cHBvcnRzLmV2ZXJ5dGhpbmc9dC5zdXBwb3J0cy5ldmVyeXRoaW5nJiZ0LnN1cHBvcnRzW29bcl1dLCJmbGFnIiE9PW9bcl0mJih0LnN1cHBvcnRzLmV2ZXJ5dGhpbmdFeGNlcHRGbGFnPXQuc3VwcG9ydHMuZXZlcnl0aGluZ0V4Y2VwdEZsYWcmJnQuc3VwcG9ydHNbb1tyXV0pO3Quc3VwcG9ydHMuZXZlcnl0aGluZ0V4Y2VwdEZsYWc9dC5zdXBwb3J0cy5ldmVyeXRoaW5nRXhjZXB0RmxhZyYmIXQuc3VwcG9ydHMuZmxhZyx0LkRPTVJlYWR5PSExLHQucmVhZHlDYWxsYmFjaz1mdW5jdGlvbigpe3QuRE9NUmVhZHk9ITB9LHQuc3VwcG9ydHMuZXZlcnl0aGluZ3x8KG49ZnVuY3Rpb24oKXt0LnJlYWR5Q2FsbGJhY2soKX0sYS5hZGRFdmVudExpc3RlbmVyPyhhLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLG4sITEpLGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsbiwhMSkpOihlLmF0dGFjaEV2ZW50KCJvbmxvYWQiLG4pLGEuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oKXsiY29tcGxldGUiPT09YS5yZWFkeVN0YXRlJiZ0LnJlYWR5Q2FsbGJhY2soKX0pKSwoZT10LnNvdXJjZXx8e30pLmNvbmNhdGVtb2ppP2MoZS5jb25jYXRlbW9qaSk6ZS53cGVtb2ppJiZlLnR3ZW1vamkmJihjKGUudHdlbW9qaSksYyhlLndwZW1vamkpKSl9KHdpbmRvdyxkb2N1bWVudCx3aW5kb3cuX3dwZW1vamlTZXR0aW5ncyk7Cg==
16 ms
autoptimize_single_95e6058fdf1687050106dd76c6ed499c.php
34 ms
autoptimize_single_00e130930e81ee0d0e875a2f8254f158.php
160 ms
autoptimize_single_613e2c9e49dadf0693bec8ddd162d94f.php
111 ms
autoptimize_single_00538782f94bc16c2e040ac365c96faf.php
97 ms
autoptimize_single_289e368505d4edcd42d8f24881c28ecc.php
100 ms
autoptimize_single_ac778d416f740513f695cfb22005eb83.php
171 ms
autoptimize_single_285d081e64a36d29b3c13d0364365406.php
161 ms
style.min.css
105 ms
mediaelementplayer-legacy.min.css
109 ms
wp-mediaelement.min.css
112 ms
classic-themes.min.css
114 ms
autoptimize_single_0e4a098f3f6e3faede64db8b9da80ba2.php
223 ms
autoptimize_single_3d9cfc9bc89104cab4159e9fde07825f.php
229 ms
autoptimize_single_60fe4fb7fef3ac79ff0075950b8e9a9f.php
231 ms
bootstrap.min.css
164 ms
font-awesome.min.css
170 ms
autoptimize_single_91664c6f5f621e9deeec61279b8ef3dc.php
286 ms
jquery.min.js
182 ms
jquery-migrate.min.js
178 ms
css
55 ms
video-js.css
41 ms
js
80 ms
javascript;base64,DQogIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9DQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7DQoNCiAgZ3RhZygnY29uZmlnJywgJ0ctN1MwM1ZMRk1QRCcpOw0K
11 ms
javascript;base64,KGZ1bmN0aW9uKGQsIHMsIGlkKSB7dmFyIGpzLCBmanMgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKHMpWzBdOyAgaWYgKGQuZ2V0RWxlbWVudEJ5SWQoaWQpKSByZXR1cm47ICBqcyA9IGQuY3JlYXRlRWxlbWVudChzKTsganMuaWQgPSBpZDsgIGpzLnNyYyA9ICIvL2Nvbm5lY3QuZmFjZWJvb2submV0L2VuX1VTL2FsbC5qcyN4ZmJtbD0xIjsgIGZqcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShqcywgZmpzKTsgfShkb2N1bWVudCwgJ3NjcmlwdCcsICdmYWNlYm9vay1qc3NkaycpKTs=
11 ms
javascript;base64,KGZ1bmN0aW9uKGQsIHMsIGlkKSB7DQogICAgdmFyIGpzLCBmanMgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKHMpWzBdOw0KICAgIGlmIChkLmdldEVsZW1lbnRCeUlkKGlkKSkgcmV0dXJuOw0KICAgIGpzID0gZC5jcmVhdGVFbGVtZW50KHMpOyBqcy5pZCA9IGlkOw0KICAgIGpzLnNyYyA9ICJodHRwczovL2Zvcm1zLmF3ZWJlci5jb20vZm9ybS8xNi8yMTE4Mjk4NTE2LmpzIjsNCiAgICBmanMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoanMsIGZqcyk7DQogICAgfShkb2N1bWVudCwgInNjcmlwdCIsICJhd2ViZXItd2pzLTdlMDdteWNnNiIpKTsNCg==
11 ms
8337350.js
35 ms
javascript;base64,CgkJdmFyIGdldEVsZW1lbnRzQnlDbGFzc05hbWU9ZnVuY3Rpb24oYSxiLGMpe2lmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpe2dldEVsZW1lbnRzQnlDbGFzc05hbWU9ZnVuY3Rpb24oYSxiLGMpe2M9Y3x8ZG9jdW1lbnQ7dmFyIGQ9Yy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpLGU9Yj9uZXcgUmVnRXhwKCJcXGIiK2IrIlxcYiIsImkiKTpudWxsLGY9W10sZztmb3IodmFyIGg9MCxpPWQubGVuZ3RoO2g8aTtoKz0xKXtnPWRbaF07aWYoIWV8fGUudGVzdChnLm5vZGVOYW1lKSl7Zi5wdXNoKGcpfX1yZXR1cm4gZn19ZWxzZSBpZihkb2N1bWVudC5ldmFsdWF0ZSl7Z2V0RWxlbWVudHNCeUNsYXNzTmFtZT1mdW5jdGlvbihhLGIsYyl7Yj1ifHwiKiI7Yz1jfHxkb2N1bWVudDt2YXIgZD1hLnNwbGl0KCIgIiksZT0iIixmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixnPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1mP2Y6bnVsbCxoPVtdLGksajtmb3IodmFyIGs9MCxsPWQubGVuZ3RoO2s8bDtrKz0xKXtlKz0iW2NvbnRhaW5zKGNvbmNhdCgnICcsIEBjbGFzcywgJyAnKSwgJyAiK2Rba10rIiAnKV0ifXRyeXtpPWRvY3VtZW50LmV2YWx1YXRlKCIuLy8iK2IrZSxjLGcsMCxudWxsKX1jYXRjaChtKXtpPWRvY3VtZW50LmV2YWx1YXRlKCIuLy8iK2IrZSxjLG51bGwsMCxudWxsKX13aGlsZShqPWkuaXRlcmF0ZU5leHQoKSl7aC5wdXNoKGopfXJldHVybiBofX1lbHNle2dldEVsZW1lbnRzQnlDbGFzc05hbWU9ZnVuY3Rpb24oYSxiLGMpe2I9Ynx8IioiO2M9Y3x8ZG9jdW1lbnQ7dmFyIGQ9YS5zcGxpdCgiICIpLGU9W10sZj1iPT09IioiJiZjLmFsbD9jLmFsbDpjLmdldEVsZW1lbnRzQnlUYWdOYW1lKGIpLGcsaD1bXSxpO2Zvcih2YXIgaj0wLGs9ZC5sZW5ndGg7ajxrO2orPTEpe2UucHVzaChuZXcgUmVnRXhwKCIoXnxcXHMpIitkW2pdKyIoXFxzfCQpIikpfWZvcih2YXIgbD0wLG09Zi5sZW5ndGg7bDxtO2wrPTEpe2c9ZltsXTtpPWZhbHNlO2Zvcih2YXIgbj0wLG89ZS5sZW5ndGg7bjxvO24rPTEpe2k9ZVtuXS50ZXN0KGcuY2xhc3NOYW1lKTtpZighaSl7YnJlYWt9fWlmKGkpe2gucHVzaChnKX19cmV0dXJuIGh9fXJldHVybiBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEsYixjKX0sCgkJCWRyb3Bkb3ducyA9IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoICdkcm9wZG93bi1tZW51JyApOwoJCWZvciAoIGk9MDsgaTxkcm9wZG93bnMubGVuZ3RoOyBpKysgKQoJCQlkcm9wZG93bnNbaV0ub25jaGFuZ2UgPSBmdW5jdGlvbigpeyBpZiAoIHRoaXMudmFsdWUgIT0gJycgKSB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMudmFsdWU7IH0KCQ==
10 ms
javascript;base64,dmFyIGE4bHZ5Z2R0YXFqc3lmeHcsYThsdnlnZHRhcWpzeWZ4d19wb2xsPWZ1bmN0aW9uKCl7dmFyIHI9MDtyZXR1cm4gZnVuY3Rpb24obixsKXtjbGVhckludGVydmFsKHIpLHI9c2V0SW50ZXJ2YWwobixsKX19KCk7IWZ1bmN0aW9uKGUsdCxuKXtpZihlLmdldEVsZW1lbnRCeUlkKG4pKXthOGx2eWdkdGFxanN5Znh3X3BvbGwoZnVuY3Rpb24oKXtpZih3aW5kb3dbJ29tX2xvYWRlZCddKXtpZighYThsdnlnZHRhcWpzeWZ4dyl7YThsdnlnZHRhcWpzeWZ4dz1uZXcgT3B0aW5Nb25zdGVyQXBwKCk7cmV0dXJuIGE4bHZ5Z2R0YXFqc3lmeHcuaW5pdCh7dToiMTQxMTMuNDE3Mjc0IixzdGFnaW5nOjAsZGV2OjAsYmV0YTowfSk7fX19LDI1KTtyZXR1cm47fXZhciBkPWZhbHNlLG89ZS5jcmVhdGVFbGVtZW50KHQpO28uaWQ9bixvLnNyYz0iLy9hLm9wdG5tbnN0ci5jb20vYXBwL2pzL2FwaS5taW4uanMiLG8ub25sb2FkPW8ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoIWQpe2lmKCF0aGlzLnJlYWR5U3RhdGV8fHRoaXMucmVhZHlTdGF0ZT09PSJsb2FkZWQifHx0aGlzLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXt0cnl7ZD1vbV9sb2FkZWQ9dHJ1ZTthOGx2eWdkdGFxanN5Znh3PW5ldyBPcHRpbk1vbnN0ZXJBcHAoKTthOGx2eWdkdGFxanN5Znh3LmluaXQoe3U6IjE0MTEzLjQxNzI3NCIsc3RhZ2luZzowLGRldjowLGJldGE6MH0pO28ub25sb2FkPW8ub25yZWFkeXN0YXRlY2hhbmdlPW51bGw7fWNhdGNoKHQpe319fX07KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQobyl9KGRvY3VtZW50LCJzY3JpcHQiLCJvbWFwaS1zY3JpcHQiKTs=
10 ms
javascript;base64,dmFyIGJodDZhdnFyaXp4aXFlZWIsYmh0NmF2cXJpenhpcWVlYl9wb2xsPWZ1bmN0aW9uKCl7dmFyIHI9MDtyZXR1cm4gZnVuY3Rpb24obixsKXtjbGVhckludGVydmFsKHIpLHI9c2V0SW50ZXJ2YWwobixsKX19KCk7IWZ1bmN0aW9uKGUsdCxuKXtpZihlLmdldEVsZW1lbnRCeUlkKG4pKXtiaHQ2YXZxcml6eGlxZWViX3BvbGwoZnVuY3Rpb24oKXtpZih3aW5kb3dbJ29tX2xvYWRlZCddKXtpZighYmh0NmF2cXJpenhpcWVlYil7Ymh0NmF2cXJpenhpcWVlYj1uZXcgT3B0aW5Nb25zdGVyQXBwKCk7cmV0dXJuIGJodDZhdnFyaXp4aXFlZWIuaW5pdCh7dToiMTQxMTMuMzQxNDAyIixzdGFnaW5nOjAsZGV2OjAsYmV0YTowfSk7fX19LDI1KTtyZXR1cm47fXZhciBkPWZhbHNlLG89ZS5jcmVhdGVFbGVtZW50KHQpO28uaWQ9bixvLnNyYz0iLy9hLm9wdG5tbnN0ci5jb20vYXBwL2pzL2FwaS5taW4uanMiLG8ub25sb2FkPW8ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoIWQpe2lmKCF0aGlzLnJlYWR5U3RhdGV8fHRoaXMucmVhZHlTdGF0ZT09PSJsb2FkZWQifHx0aGlzLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXt0cnl7ZD1vbV9sb2FkZWQ9dHJ1ZTtiaHQ2YXZxcml6eGlxZWViPW5ldyBPcHRpbk1vbnN0ZXJBcHAoKTtiaHQ2YXZxcml6eGlxZWViLmluaXQoe3U6IjE0MTEzLjM0MTQwMiIsc3RhZ2luZzowLGRldjowLGJldGE6MH0pO28ub25sb2FkPW8ub25yZWFkeXN0YXRlY2hhbmdlPW51bGw7fWNhdGNoKHQpe319fX07KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQobyl9KGRvY3VtZW50LCJzY3JpcHQiLCJvbWFwaS1zY3JpcHQiKTs=
10 ms
javascript;base64,dmFyIGdseTRtZ2xqc2VzODZ5dHAsZ2x5NG1nbGpzZXM4Nnl0cF9wb2xsPWZ1bmN0aW9uKCl7dmFyIHI9MDtyZXR1cm4gZnVuY3Rpb24obixsKXtjbGVhckludGVydmFsKHIpLHI9c2V0SW50ZXJ2YWwobixsKX19KCk7IWZ1bmN0aW9uKGUsdCxuKXtpZihlLmdldEVsZW1lbnRCeUlkKG4pKXtnbHk0bWdsanNlczg2eXRwX3BvbGwoZnVuY3Rpb24oKXtpZih3aW5kb3dbJ29tX2xvYWRlZCddKXtpZighZ2x5NG1nbGpzZXM4Nnl0cCl7Z2x5NG1nbGpzZXM4Nnl0cD1uZXcgT3B0aW5Nb25zdGVyQXBwKCk7cmV0dXJuIGdseTRtZ2xqc2VzODZ5dHAuaW5pdCh7dToiMTQxMTMuMzM4NjgxIixzdGFnaW5nOjAsZGV2OjAsYmV0YTowfSk7fX19LDI1KTtyZXR1cm47fXZhciBkPWZhbHNlLG89ZS5jcmVhdGVFbGVtZW50KHQpO28uaWQ9bixvLnNyYz0iLy9hLm9wdG5tbnN0ci5jb20vYXBwL2pzL2FwaS5taW4uanMiLG8ub25sb2FkPW8ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoIWQpe2lmKCF0aGlzLnJlYWR5U3RhdGV8fHRoaXMucmVhZHlTdGF0ZT09PSJsb2FkZWQifHx0aGlzLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXt0cnl7ZD1vbV9sb2FkZWQ9dHJ1ZTtnbHk0bWdsanNlczg2eXRwPW5ldyBPcHRpbk1vbnN0ZXJBcHAoKTtnbHk0bWdsanNlczg2eXRwLmluaXQoe3U6IjE0MTEzLjMzODY4MSIsc3RhZ2luZzowLGRldjowLGJldGE6MH0pO28ub25sb2FkPW8ub25yZWFkeXN0YXRlY2hhbmdlPW51bGw7fWNhdGNoKHQpe319fX07KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQobyl9KGRvY3VtZW50LCJzY3JpcHQiLCJvbWFwaS1zY3JpcHQiKTs=
10 ms
javascript;base64,CgkJdmFyIGE4bHZ5Z2R0YXFqc3lmeHdfc2hvcnRjb2RlID0gdHJ1ZTt2YXIgYmh0NmF2cXJpenhpcWVlYl9zaG9ydGNvZGUgPSB0cnVlO3ZhciBnbHk0bWdsanNlczg2eXRwX3Nob3J0Y29kZSA9IHRydWU7CQk=
10 ms
jquery.flexslider-min.js
182 ms
autoptimize_single_bedb15f1647a9c8c3b125f8752235d59.php
279 ms
jquery.colorbox-min.js
189 ms
autoptimize_single_df5ed82a0659a0b31cd84d656d8637c9.php
333 ms
jquery.backstretch.min.js
225 ms
autoptimize_single_341a550f098a8bcf098726ebf81c7cfe.php
387 ms
autoptimize_single_2827f18cc731c845ba8deda407476d8e.php
387 ms
comment-reply.min.js
232 ms
autoptimize_single_7be65ac27024c7b5686f9d7c49690799.php
387 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd3BjZjcgPSB7ImFwaSI6eyJyb290IjoiaHR0cHM6XC9cL3d3dy5iZXN0ZW5oYW5jZW1lbnRyZXZpZXdzLmNvbVwvd3AtanNvblwvIiwibmFtZXNwYWNlIjoiY29udGFjdC1mb3JtLTdcL3YxIn19OwovKiBdXT4gKi8K
9 ms
autoptimize_single_5bc2b1fa970f9cecb3c30c0c92c98271.php
392 ms
javascript;base64,KGZ1bmN0aW9uKGQpe3ZhciBzPWQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cy50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO3Muc3JjPSJodHRwczovL2Eub21hcHBhcGkuY29tL2FwcC9qcy9hcGkubWluLmpzIjtzLmFzeW5jPXRydWU7cy5pZD0ib21hcGktc2NyaXB0IjtkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQocyk7fSkoZG9jdW1lbnQpOw==
8 ms
e-202424.js
32 ms
helper.min.js
332 ms
javascript;base64,dmFyIG9tYXBpX2xvY2FsaXplZCA9IHsKCQkJYWpheDogJ2h0dHBzOi8vd3d3LmJlc3RlbmhhbmNlbWVudHJldmlld3MuY29tL3dwLWFkbWluL2FkbWluLWFqYXgucGhwP29wdGluLW1vbnN0ZXItYWpheC1yb3V0ZT0xJywKCQkJbm9uY2U6ICcxMzU4YzRhN2Q3JywKCQkJc2x1Z3M6CgkJCXsiYThsdnlnZHRhcWpzeWZ4dyI6eyJzbHVnIjoiYThsdnlnZHRhcWpzeWZ4dyIsIm1haWxwb2V0IjpmYWxzZX0sImJodDZhdnFyaXp4aXFlZWIiOnsic2x1ZyI6ImJodDZhdnFyaXp4aXFlZWIiLCJtYWlscG9ldCI6ZmFsc2V9LCJnbHk0bWdsanNlczg2eXRwIjp7InNsdWciOiJnbHk0bWdsanNlczg2eXRwIiwibWFpbHBvZXQiOmZhbHNlfX0JCX07
8 ms
javascript;base64,dmFyIG9tYXBpX2RhdGEgPSB7Im9iamVjdF9pZCI6MTM3NSwib2JqZWN0X2tleSI6InBhZ2UiLCJvYmplY3RfdHlwZSI6InBvc3QiLCJ0ZXJtX2lkcyI6W10sIndwX2pzb24iOiJodHRwczpcL1wvd3d3LmJlc3RlbmhhbmNlbWVudHJldmlld3MuY29tXC93cC1qc29uIiwid2NfYWN0aXZlIjpmYWxzZSwiZWRkX2FjdGl2ZSI6ZmFsc2UsIm5vbmNlIjoiNGRmZDNkM2FhZCJ9Ow==
7 ms
video.js
45 ms
javascript;base64,CgpqUXVlcnkod2luZG93KS5sb2FkKGZ1bmN0aW9uKCkgewoJLy8gQmFja2dyb3VuZAoJCQkJCQkJCQkJCQkKCS8vIEZsZXggU2xpZGVyCglqUXVlcnkoJy5mbGV4c2xpZGVyJykuZmxleHNsaWRlcih7CgkJCQlhbmltYXRpb246ICJzbGlkZSIsIAoJCQkJc2xpZGVEaXJlY3Rpb246ICJob3Jpem9udGFsIiwKCQkJCXNsaWRlc2hvdzogdHJ1ZSwKCQkJCXNsaWRlc2hvd1NwZWVkOiA3MDAwLCAgCgkJCQlhbmltYXRpb25EdXJhdGlvbjogNjAwLCAgIAoJCQkJZGlyZWN0aW9uTmF2OiB0cnVlLCAgICAgICAgICAgICAKCQkJCWNvbnRyb2xOYXY6IHRydWUsICAgICAgICAgICAgICAgCgkJCSAgfSk7CgkJCgkvLyBQcmV0dHlQaG90bwoJalF1ZXJ5KCJhW3JlbF49J3ByZXR0eVBob3RvJ10iKS5wcmV0dHlQaG90byh7YW5pbWF0aW9uX3NwZWVkOidmYXN0Jyx0aGVtZToncHBfZGVmYXVsdCcsIGF1dG9wbGF5X3NsaWRlc2hvdzogZmFsc2V9KTsKfSk7CgoJCg==
7 ms
autoptimize_single_32fd18df4f37c008177959d8aae87267.php
392 ms
javascript;base64,CgpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHsvL1dQIGpRdWVyeSBXcmFwcGVyCgpjb25zb2xlLmxvZygnUnVubmluZyAuIC4gLiAnKTsKCnZhciBkaWRTY3JvbGw7CnZhciBsYXN0U2Nyb2xsVG9wID0gMDsKdmFyIGRlbHRhID0gNTsKdmFyIG5hdmJhckhlaWdodCA9ICQoJyNoZWFkZXItbWlkZGxlJykub3V0ZXJIZWlnaHQoKTsKCiQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24oZXZlbnQpewogICAgZGlkU2Nyb2xsID0gdHJ1ZTsKfSk7CgpzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgIGlmIChkaWRTY3JvbGwpIHsKICAgICAgICBoYXNTY3JvbGxlZCgpOwogICAgICAgIGRpZFNjcm9sbCA9IGZhbHNlOwogICAgfQp9LCAyNTApOwoKZnVuY3Rpb24gaGFzU2Nyb2xsZWQoKSB7CiAgICB2YXIgc3QgPSAkKHRoaXMpLnNjcm9sbFRvcCgpOwoKICAgIC8vIE1ha2Ugc3VyZSB0aGV5IHNjcm9sbCBtb3JlIHRoYW4gZGVsdGEKICAgIGlmKE1hdGguYWJzKGxhc3RTY3JvbGxUb3AgLSBzdCkgPD0gZGVsdGEpCiAgICAgICAgcmV0dXJuOwogIAogICAgY29uc29sZS5sb2coc3QpOwoKICAgIC8vIElmIHRoZXkgc2Nyb2xsZWQgZG93biBhbmQgYXJlIHBhc3QgdGhlIG5hdmJhciwgYWRkIGNsYXNzIC5uYXYtdXAuCiAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBzbyB5b3UgbmV2ZXIgc2VlIHdoYXQgaXMgImJlaGluZCIgdGhlIG5hdmJhci4KICAgIGlmIChzdCA+IDMzKXsKICAgICAgICAvLyBTY3JvbGwgRG93bgoKICAgICAgICAkKCcjbmF2LXRvcCcpLnNsaWRlVXAoMjAwMCk7CgogICAgICAgICQoJyNuYXYtdG9wJykuYWRkQ2xhc3MoJ2Rpc3BsYXktbm9uZScpOwoKICAgICAgICAkKCcjaGVhZGVyLWFsbCcpLmFkZENsYXNzKCduYXYtc3RpY2snKTsKCiAgICAgICAgY29uc29sZS5sb2coJ0hpZGluZyAuIC4gLiAnKTsKCgogICAgfSBlbHNlIHsKICAgICAgICAvLyBTY3JvbGwgVXAKICAgICAgICBpZihzdCA8IDMwKSB7CiAgICAgICAgICAgIAogICAgICAgICAgICAkKCcjbmF2LXRvcCcpLnJlbW92ZUNsYXNzKCdkaXNwbGF5LW5vbmUnKTsKCiAgICAgICAgICAgICQoJyNuYXYtdG9wJykuc2xpZGVEb3duKDEwMDApOwoKICAgICAgICAgICAgJCgnI2hlYWRlci1hbGwnKS5yZW1vdmVDbGFzcygnbmF2LXN0aWNrJyk7CgogICAgICAgICAgICBjb25zb2xlLmxvZygnU2hvd2luZyAuIC4gLiAnKTsKCiAgICAgICAgfQogICAgfQogICAgCiAgICBsYXN0U2Nyb2xsVG9wID0gc3Q7Cn0KCn0pOy8vV1AgalF1ZXJ5Cgo=
7 ms
javascript;base64,Cgpjb25zb2xlLmxvZygncnBwZDogcmlwcGVkJyk7CmNvbnNvbGUubG9nKCd0YnN0OiB0Ym9vc3QnKTsKY29uc29sZS5sb2coJ2VuaDogZW5oYW5jZScpOwo=
7 ms
javascript;base64,CihmdW5jdGlvbigkKSB7Ci8vV29yZHByZXNzIGpRdWVyeQkKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAgICAvLyBVcGRhdGUgVmlkZW8gTWV0YQoKCQkgY29uc29sZS5sb2coJ3J1bm5pbmcgc2MtdmlkZW8tanMgdjIuMCcpOyAgICAgICAgICAgIAoKCgkJIGNvbnNvbGUubG9nKCQoKS5qcXVlcnkpOwoKCQkKCQkgalF1ZXJ5KCIudmpzLXRlY2giKS5vbigncGxheScsIGZ1bmN0aW9uKCkgewoJCSAgIC8vQWN0aW9ucyB3aGVuIHZpZGVvIHBsYXkgc2VsZWN0ZWQKCQkgICBjb25zb2xlLmxvZygndmpzLXRlY2gnKTsKCQkgICAKCQkgICB2aWRlb0lkID0galF1ZXJ5KHRoaXMpLmRhdGEoImlkIik7ICAKCgkJICAgY29uc29sZS5sb2coJ1ZpZGVvIFBsYXllZDogJyt2aWRlb0lkICkKCgkJIH0pOwoKCQkvLyBqUXVlcnkoIiNzYy12aWRlby0yOCIpLm9uKCdwbGF5JywgZnVuY3Rpb24oKSB7CgkJLy8gICAvL0FjdGlvbnMgd2hlbiB2aWRlbyBwbGF5IHNlbGVjdGVkCgkJLy8gICAvL3ZpZGVvSWQgPSBqUXVlcnkodGhpcykuZGF0YSgiaWQiKTsgIAoKCQkvLyAgIC8vY29uc29sZS5sb2coJ1ZpZGVvIFBsYXllZDogJyt2aWRlb0lkICkKCgkJLy8gICBjb25zb2xlLmxvZygnc2MtdmlkZW8tMjgnKTsKCQkvLyB9KTsKCgkJalF1ZXJ5KCIjc2MtdmlkZW8tM19odG1sNV9hcGkiKS5vbigncGxheScsIGZ1bmN0aW9uKCkgewoJCS8vICAgLy9BY3Rpb25zIHdoZW4gdmlkZW8gcGxheSBzZWxlY3RlZAoJCXZpZGVvSWQgPSBqUXVlcnkodGhpcykuZGF0YSgiaWQiKTsgIAoKCQljb25zb2xlLmxvZygnVmlkZW8gUGxheWVkOiAnK3ZpZGVvSWQgKQoJCS8vY29uc29sZS5sb2coJ3NjLXZpZGVvLTI4X2h0bWw1X2FwaScpOwoJCX0pOyAKCgoJCSAvLyBqUXVlcnkoIi52aWRlby1qcyIpLm9uKCdwbGF5JywgZnVuY3Rpb24oKSB7CgkJIC8vICAgLy9BY3Rpb25zIHdoZW4gdmlkZW8gcGxheSBzZWxlY3RlZAoJCSAvLyAgIC8vdmlkZW9JZCA9IGpRdWVyeSh0aGlzKS5kYXRhKCJpZCIpOyAgCgoJCSAvLyAgIGNvbnNvbGUubG9nKCdWaWRlbyBQbGF5ZWQ6ICcrdmlkZW9JZCApCgkJIC8vIH0pOwoKCQkgLy9qUXVlcnkoIi52aWRlby1qcyIpLmNsaWNrKGZ1bmN0aW9uKCkgewoKCQkgLy9qUXVlcnkoIi52anMtYmlnLXBsYXktYnV0dG9uIikuY2xpY2soZnVuY3Rpb24oKSB7ICAgIAoJCQoKCQkgalF1ZXJ5KCIudmpzLXRlY2giKS5vbigncGxheScsIGZ1bmN0aW9uKCkgeyAgICAKCgkJICAgICBjb25zb2xlLmxvZygnLnZqcy10ZWNoIHBsYXllZCcpOwoKCQkgICAgIHZpZGVvSWQgPSBqUXVlcnkodGhpcykuZGF0YSgiaWQiKTsKCgkJICAgICB2YXIgdmlkZW8gPSBqUXVlcnkodGhpcykuZ2V0KDApOwoKCQkgICAgIGlmICggdmlkZW8ucGF1c2VkICkgewoKCQkgICAgICAgICAvL2NvbnNvbGUubG9nKCdWaWRlbyAnK3ZpZGVvSWQrJyBpcyBwYXVzZWQuJyk7CgoJCSAgICAgICAgIC8vdmlkZW8ucGxheSgpOwoJCSAgICAgICAgIC8valF1ZXJ5KCIucGxheSIpLmhpZGUoKTsKCQkgICAgICAgICAvL2pRdWVyeSgiLnBhdXNlIikuc2hvdygpOwoJCSAgICAgfSBlbHNlIHsKCQkgICAgICAgICAgICAgCgkJICAgICAgICAgLy9jb25zb2xlLmxvZygnVmlkZW8gJyt2aWRlb0lkKycgaXMgcGxheWluZy4nKTsKCgkJICAgICAgICAgdmFyIG15UGxheWVyID0gdmlkZW9qcygnc2MtdmlkZW8tJyt2aWRlb0lkKTsKCQkgICAgICAgICAKCQkgICAgICAgICAvL215UGxheWVyLm9uKCd0aW1ldXBkYXRlJywgZnVuY3Rpb24oKSB7CgkJICAgICAgICAgCgkJICAgICAgICAgICB2YXIgdmlkZW9DdXJyZW50VGltZSA9IG15UGxheWVyLmN1cnJlbnRUaW1lKCk7CgoJCSAgICAgICAgICAgICBpZiAodmlkZW9DdXJyZW50VGltZSA9PSAwKQoJCSAgICAgICAgICAgICB7CgkJICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUmVjb3JkIFBsYXknKTsKCgkJICAgICAgICAgICAgICAgICAgICAgLy8gVmVyIDIKCgkJICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5LmFqYXgoewoJCSAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiUE9TVCIsCgkJICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vdmlkZW9zLmJlc3RlbmhhbmNlbWVudHJldmlld3MuY29tL2FwaS9kYXRhL3RyYWNrJywKCQkgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogewoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHZpZGVvSWQKCQkgICAgICAgICAgICAgICAgICAgICAgICAgfSwKCQkgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzcG9uc2UpCgkJICAgICAgICAgICAgICAgICAgICAgICAgIHsKCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlc3BvbnNlID09ICdzdWNjZXNzJykKCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRGF0YSBTdWNjZXNzIHRvIHZpZGVvcy5TQycpOwoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdEYXRhIEZhaWxlZCB0byB2aWRlb3MuU0MnKTsgCgkJICAgICAgICAgICAgICAgICAgICAgICAgIH0KCQkgICAgICAgICAgICAgICAgICAgICB9KTsKCgoJCSAgICAgICAgICAgICAgICAgCgkJICAgICAgICAgICAgIH0KCQkgICAgICAgICAKCQkgICAgICAgICAvL30pOwoKCQkgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMuY3VycmVudFRpbWUoKSk7CgoJCSAgICAgICAgIC8vdmFyIHZpZGVvQ3VycmVudFRpbWUgPSBqUXVlcnkodGhpcylbMF12aWRlby5jdXJyZW50VGltZTsKCgkJICAgICAgICAgLy9jb25zb2xlLmxvZygnQ3VycmVudCBUaW1lOiAnK3ZpZGVvQ3VycmVudFRpbWUpOwoKCQkgICAgICAgICAvLyB2aWRlby5wYXVzZSgpOwoJCSAgICAgICAgIC8vICQoIi5wbGF5Iikuc2hvdygpOwoJCSAgICAgICAgIC8vICQoIi5wYXVzZSIpLmhpZGUoKTsKCQkgICAgIH0KCgkJICAgICByZXR1cm4gZmFsc2U7CgkJIH0pOwoKCQkgLy9qUXVlcnkoJy52aWRlby1qcycpLm9uZSgncGxheScsIGZ1bmN0aW9uICgpIHsKCgkJIC8vIHZpZGVvanMoJ3NjLXZpZGVvLTIzJykub24oJ3BsYXknLCBmdW5jdGlvbiAoKSB7ICAgIAoKCgoJCSAvLyAgICAgY29uc29sZS5sb2coJ3NjLXZpZGVvIHBsYXlpbmcnKTsgICAgICAgICAgICAKCgkJIC8vICAgICB2aWRlb0lkID0galF1ZXJ5KHRoaXMpLmRhdGEoImlkIik7CgoJCSAvLyAgICAgY29uc29sZS5sb2coJ1ZpZGVvIFN0YXJ0ZWQgUGxheWluZzogJyt2aWRlb0lkKTsKCQkgICAgCgkJIC8vIH0pOyAgICAgICAgCgoKICAgICAgICBjb25zb2xlLmxvZygnVXBkYXRpbmcgVmlkZW8gTWV0YTogJyk7CgogICAgICAgIGpRdWVyeSgnLnNjLXZpZGVvLWNvdW50cycpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgc2NWaWRlb0lkID0galF1ZXJ5KHRoaXMpLmRhdGEoImlkIik7CgogICAgICAgICAgICBjb25zb2xlLmxvZygnUnVubmluZyBVcGRhdGUgVmlkZW8gTWV0YSAnK3NjVmlkZW9JZCApOwoKICAgICAgICAgICAgalF1ZXJ5LmFqYXgoewogICAgICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vdmlkZW9zLmJlc3RlbmhhbmNlbWVudHJldmlld3MuY29tL2FwaS92aWRlby9tZXRhLycrc2NWaWRlb0lkLAogCiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oanNvbikgewogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ09idGFpbmVkIGpzb24gTWV0YSAnK3NjVmlkZW9JZCApOwoKICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2h0dHBzOi8vdmlkZW9zLmJlc3RlbmhhbmNlbWVudHJldmlld3MuY29tL2FwaS92aWRlby9tZXRhLycrc2NWaWRlb0lkKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNjVmlkZW9VcmwgPSBqc29uLnVybDsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNjVmlkZW9UaXRsZSA9IGpzb24udGl0bGU7CgogICAgICAgICAgICAgICAgICAgICAgICBzY1ZpZGVvVmlld3MgPSBqc29uLnZpZXdzOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjVmlkZW9VcmwubGVuZ3RoID4gMCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1VybDogJytzY1ZpZGVvVXJsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSgiI3NjLXZpZGVvLWhyZWYtIitzY1ZpZGVvSWQpLmF0dHIoImhyZWYiLCBzY1ZpZGVvVXJsKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NWaWRlb1RpdGxlLmxlbmd0aCA+IDApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdUaXRsZTogJytzY1ZpZGVvVGl0bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCIjc2MtdmlkZW8tdGl0bGUtIitzY1ZpZGVvSWQpLnRleHQoc2NWaWRlb1RpdGxlKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY1ZpZGVvVmlld3MgPiAwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnVmlld3M6ICcrc2NWaWRlb1ZpZXdzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSgiI3NjLXZpZGVvLXZpZXdzLSIrc2NWaWRlb0lkKS50ZXh0KHNjVmlkZW9WaWV3cyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgoKCiAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewoJCQljb25zb2xlLmxvZygnZG9jIHJlYWR5IHN3dScpOwoJCQkvL2hvbWUgcGFnZSBjbGljayB0byBzZWN0aW9uCgoKCQkJCSQoICcjcmVzdWx0cy1jbGljaycgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygncmVzdWx0cy1jbGljayBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3Jlc3VsdHMtY2xpY2stYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkJCgogICAgCQkJCX0sIDE1MDApOwoKCQkJICAgICAgCQkkKCIjcmVzdWx0cy1jbGljay1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCS8vJCgiI2hvbWUtY3JlYXRpbmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkJCiAgICAJCQl9KTsKCgoJCQkgICAkKCAnI3Jldmlldy1jbGljaycgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygncmV2aWV3LWNsaWNrIGNsaWNrZWQnKTsKCgkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CiAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjcmV2aWV3LWNsaWNrLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI3Jldmlldy1jbGljay1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCS8vJCgiI2hvbWUtY3JlYXRpbmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkJCiAgICAJCQl9KTsKCgkJCSAgIAkkKCAnI29yZXhpcy13aGF0JyApLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkJCSAgICAgIGNvbnNvbGUubG9nKCdvcmV4aXMtd2hhdCBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI29yZXhpcy13aGF0LWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI29yZXhpcy13aGF0LWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsgCgkJCSAgICAgIAkJJCgiI29yZXhpcy1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI29yZXhpcy1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI29yZXhpcy12aWRlby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNvcmV4aXMtd2hlcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjb3JleGlzLWxhdy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CQoJICAgIAkJCQkkKCIjb3JleGlzLWluZ3JlLXJlYyIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJfSk7CgogICAgCQkJJCggJyNvcmV4aXMtaW5ncmUnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ29yZXhpcy1pbmdyZSBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI29yZXhpcy1pbmdyZS1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCQkKCiAgICAJCQkJfSwgMTUwMCk7CgoJCQkgICAgICAJCSQoIiNvcmV4aXMtaW5ncmUtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCQkJICAgICAgCQkkKCIjb3JleGlzLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNvcmV4aXMtcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNvcmV4aXMtdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjb3JleGlzLXdoZXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI29yZXhpcy1sYXctYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwkKCSAgICAJCQkJJCgiI29yZXhpcy1pbmdyZS1yZWMiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCX0pOwoKICAgIAkJCSQoICcjb3JleGlzLXJlc3VsdHMnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ29yZXhpcy1yZXN1bHRzIGNsaWNrZWQnKTsKCgkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CiAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjb3JleGlzLXJlc3VsdHMtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkJCgogICAgCQkJCX0sIDE1MDApOwoKCQkJICAgICAgCQkkKCIjb3JleGlzLXJlc3VsdHMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCQkJICAgICAgCQkkKCIjb3JleGlzLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNvcmV4aXMtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjb3JleGlzLXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI29yZXhpcy13aGVyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNvcmV4aXMtbGF3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsJCgkgICAgCQkJCSQoIiNvcmV4aXMtaW5ncmUtcmVjIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQl9KTsKCiAgICAJCQkkKCAnI29yZXhpcy12aWRlbycgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygnb3JleGlzLXZpZGVvIGNsaWNrZWQnKTsKCgkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CiAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjb3JleGlzLXZpZGVvLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI29yZXhpcy12aWRlby1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNvcmV4aXMtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI29yZXhpcy1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNvcmV4aXMtcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNvcmV4aXMtd2hlcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjb3JleGlzLWxhdy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CQoJICAgIAkJCQkkKCIjb3JleGlzLWluZ3JlLXJlYyIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJfSk7CgogICAgCQkJICAgIAkJCSQoICcjb3JleGlzLXdoZXJlJyApLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkJCSAgICAgIGNvbnNvbGUubG9nKCdvcmV4aXMtd2hlcmUgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNvcmV4aXMtd2hlcmUtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkJCgogICAgCQkJCX0sIDE1MDApOwoKCQkJICAgICAgCQkkKCIjb3JleGlzLXdoZXJlLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsgCgkJCSAgICAgIAkJJCgiI29yZXhpcy13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjb3JleGlzLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI29yZXhpcy12aWRlby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNvcmV4aXMtcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNvcmV4aXMtbGF3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsJCgkgICAgCQkJCSQoIiNvcmV4aXMtaW5ncmUtcmVjIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQl9KTsKCiAgICAJCQkkKCAnI29yZXhpcy1sYXcnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ29yZXhpcy1sYXctYXJlYSBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI29yZXhpcy1sYXctYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkJCgogICAgCQkJCX0sIDE1MDApOwoKCQkJICAgICAgCQkkKCIjb3JleGlzLWxhdy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNvcmV4aXMtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI29yZXhpcy1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNvcmV4aXMtdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjb3JleGlzLXdoZXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI29yZXhpcy1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsJCgkgICAgCQkJCSQoIiNvcmV4aXMtaW5ncmUtcmVjIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQl9KTsKCiAgICAJCQkkKCAnI29yZXhpcy1yZWMnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ29yZXhpcy1yZWMgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNvcmV4aXMtcmVjLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI29yZXhpcy1yZWMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCQkJICAgICAgCQkkKCIjb3JleGlzLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNvcmV4aXMtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjb3JleGlzLXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI29yZXhpcy13aGVyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNvcmV4aXMtbGF3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsJCgkgICAgCQkJCSQoIiNvcmV4aXMtcmVzdWx0cy1yZWMiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCX0pOwoKCiAgICAJCQkkKCAnI3JvY2std2hhdCcgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygncm9jay13aGF0IGNsaWNrZWQnKTsKCgkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CiAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjcm9jay13aGF0LWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI3JvY2std2hhdC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNyb2NrLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNyb2NrLXdoZXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI3JvY2stZmFxLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI3JvY2stcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJCiAgICAJCQl9KTsKCiAgICAJCQkkKCAnI3JvY2stcmV2aWV3cycgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygncm9jay1yZXZpZXdzIGNsaWNrZWQnKTsKCgkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CiAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjcm9jay1yZXZpZXdzLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI3JvY2stcmV2aWV3cy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNyb2NrLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNyb2NrLXdoZXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI3JvY2stZmFxLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI3JvY2stcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJCiAgICAJCQl9KTsKCiAgICAJCQkkKCAnI3JvY2std2hlcmUnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ3JvY2std2hlcmUgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNyb2NrLXdoZXJlLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI3JvY2std2hlcmUtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCQkJICAgICAgCQkkKCIjcm9jay1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcm9jay13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI3JvY2stZmFxLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI3JvY2stcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJCiAgICAJCQl9KTsKCiAgICAJCQkkKCAnI3JvY2stZmFxJyApLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkJCSAgICAgIGNvbnNvbGUubG9nKCdyb2NrLWZhcSBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3JvY2stZmFxLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI3JvY2stZmFxLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsgCgkJCSAgICAgIAkJJCgiI3JvY2stcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI3JvY2std2hlcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjcm9jay13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI3JvY2stcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJCiAgICAJCQl9KTsKCiAgICAJCQkgICAgCQkJJCggJyNyb2NrLXJlYycgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygncm9jay1yZWMgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNyb2NrLXJlYy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCQkKCiAgICAJCQkJfSwgMTUwMCk7CgoJCQkgICAgICAJCSQoIiNyb2NrLXJlYy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNyb2NrLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNyb2NrLXdoZXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI3JvY2stZmFxLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI3JvY2std2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCQogICAgCQkJfSk7CgogICAgCQkJICAgIAkJCSQoICcjaG9tZS13b3JrJyApLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkJCSAgICAgIGNvbnNvbGUubG9nKCdob21lLXdvcmsgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNob21lLXdvcmstYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkJCgogICAgCQkJCX0sIDE1MDApOwoKCQkJICAgICAgCQkkKCIjaG9tZS13b3JrLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsgCgkJCSAgICAgIAkJJCgiI2hvbWUtdHJ1dGgtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNob21lLXNjYW1zLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtZGFuZ2Vycy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNob21lLWxhdGVzdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNob21lLWludHJvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtdG9wLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCX0pOwoKCiAgICAJCQkkKCAnI2hvbWUtdHJ1dGgnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ2hvbWUtdHJ1dGggY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNob21lLXRydXRoLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI2hvbWUtdHJ1dGgtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCQkJICAgICAgCQkkKCIjaG9tZS13b3JrLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjaG9tZS1zY2Ftcy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNob21lLWRhbmdlcnMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjaG9tZS1sYXRlc3QtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjaG9tZS1pbnRyby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNob21lLXRvcC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQl9KTsKCiAgICAJCQkgICAgICAJCQkkKCAnI2hvbWUtc2NhbXMnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ2hvbWUtc2NhbXMgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNob21lLXNjYW1zLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI2hvbWUtc2NhbXMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCQkJICAgICAgCQkkKCIjaG9tZS13b3JrLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjaG9tZS10cnV0aC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNob21lLWRhbmdlcnMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjaG9tZS1sYXRlc3QtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjaG9tZS1pbnRyby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNob21lLXRvcC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQl9KTsKCiAgICAJCQkgICAgICAJCQkgICAgCQkJJCggJyNob21lLWRhbmdlcnMnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ2hvbWUtZGFuZ2VycyBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI2hvbWUtZGFuZ2Vycy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCQkKCiAgICAJCQkJfSwgMTUwMCk7CgoJCQkgICAgICAJCSQoIiNob21lLWRhbmdlcnMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCQkJICAgICAgCQkkKCIjaG9tZS13b3JrLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjaG9tZS1zY2Ftcy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJCSQoIiNob21lLXRydXRoLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtbGF0ZXN0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtaW50cm8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjaG9tZS10b3AtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJfSk7CgogICAgCQkJJCggJyNob21lLWxhdGVzdCcgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygnaG9tZS1sYXRlc3QgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNob21lLWxhdGVzdC1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCQkKCiAgICAJCQkJfSwgMTUwMCk7CgoJCQkgICAgICAJCSQoIiNob21lLWxhdGVzdC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNob21lLXdvcmstYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNob21lLXNjYW1zLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtdHJ1dGgtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjaG9tZS1kYW5nZXJzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtaW50cm8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjaG9tZS10b3AtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJfSk7CgogICAgCQkJICAgIAkJCSQoICcjaG9tZS1pbnRybycgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygnaG9tZS1pbnRybyBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI2hvbWUtaW50cm8tYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkJCgogICAgCQkJCX0sIDE1MDApOwoKCQkJICAgICAgCQkkKCIjaG9tZS1pbnRyby1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNob21lLXdvcmstYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNob21lLXNjYW1zLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtdHJ1dGgtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjaG9tZS1kYW5nZXJzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtbGF0ZXN0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtdG9wLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCX0pOwoKCgkJJCggJyNob21lLXRvcCcgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygnaG9tZS10b3AgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNob21lLXRvcC1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCQkKCiAgICAJCQkJfSwgMTUwMCk7CgoJCQkgICAgICAJCSQoIiNob21lLXRvcC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNob21lLXdvcmstYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNob21lLXNjYW1zLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtdHJ1dGgtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCQkkKCIjaG9tZS1kYW5nZXJzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtbGF0ZXN0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkJJCgiI2hvbWUtaW50cm8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJfSk7CgoJCQkKCgkJCSQoICcjcGFnZS13aGF0JyApLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkJCSAgICAgIGNvbnNvbGUubG9nKCdwYWdlLXdoYXQgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNwYWdlLXdoYXQtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkJCgogICAgCQkJCX0sIDE1MDApOwoKCQkJICAgICAgCQkkKCIjcGFnZS13aGF0LWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsgCgkJCSAgICAgIAkJJCgiI3BhZ2UtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI3BhZ2UtaW5ncmVkaWVudHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLWJlYWNoLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgogICAgCQkJfSk7CgoJCQkJJCggJyNwYWdlLXJldmlld3MnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ3BhZ2UtcmV2aWV3cyBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3BhZ2UtcmV2aWV3cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCQkKCiAgICAJCQkJfSwgMTUwMCk7CgoJCQkgICAgICAJCSQoIiNwYWdlLXJldmlld3MtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCQkJICAgICAgCQkkKCIjcGFnZS13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1pbmdyZWRpZW50cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI3BhZ2UtcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI3BhZ2UtYmVhY2gtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI3BhZ2UtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCiAgICAJCQl9KTsKCiAgICAJCQkkKCAnI3BhZ2UtaW5ncmVkaWVudHMnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJICAgICAgY29uc29sZS5sb2coJ3BhZ2UtaW5ncmVkaWVudHMgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNwYWdlLWluZ3JlZGllbnRzLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI3BhZ2UtaW5ncmVkaWVudHMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCQkJICAgICAgCQkkKCIjcGFnZS1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1iZWFjaC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI3BhZ2UtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKICAgIAkJCX0pOwoKCgkJCQkkKCAnI3BhZ2UtcmVzdWx0cycgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygncGFnZS1yZXN1bHRzIGNsaWNrZWQnKTsKCgkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CiAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjcGFnZS1yZXN1bHRzLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI3BhZ2UtcmVzdWx0cy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNwYWdlLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLWluZ3JlZGllbnRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1iZWFjaC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI3BhZ2UtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKICAgIAkJCX0pOwoKICAgIAkJCSQoICcjcGFnZS1iZWFjaCcgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygncGFnZS1iZWFjaCBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3BhZ2UtYmVhY2gtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkJCgogICAgCQkJCX0sIDE1MDApOwoKCQkJICAgICAgCQkkKCIjcGFnZS1iZWFjaC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNwYWdlLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLWluZ3JlZGllbnRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgogICAgCQkJfSk7CgogICAgCQkJJCggJyNwYWdlLWJ1eScgKS5jbGljayggZnVuY3Rpb24oZSkgewoJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJCQkgICAgICBjb25zb2xlLmxvZygncGFnZS1idXkgY2xpY2tlZCcpOwoKCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNwYWdlLWJ1eS1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCQkKCiAgICAJCQkJfSwgMTUwMCk7CgoJCQkgICAgICAJCSQoIiNwYWdlLWJ1eS1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoJCQkgICAgICAJCSQoIiNwYWdlLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNwYWdlLWluZ3JlZGllbnRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjcGFnZS1iZWFjaC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI3BhZ2UtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCiAgICAJCQl9KTsKCiAgICAJCQkgICAgCQkJJCggJyNwYWdlLXJlYycgKS5jbGljayggZnVuY3Rpb24oZSkgewogICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKICAgIAkJCQkJCSAgICAgIGNvbnNvbGUubG9nKCdwYWdlLXJlYyBjbGlja2VkJyk7CgogICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjcGFnZS1yZWMtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkgICAgCQkJCQoKICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgogICAgCQkJCQkJICAgICAgCQkkKCIjcGFnZS1yZWMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKICAgIAkJCQkJCSAgICAgIAkJJCgiI3BhZ2UtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQkJCQkgICAgICAJCSQoIiNwYWdlLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJCQkJICAgICAgCQkkKCIjcGFnZS1pbmdyZWRpZW50cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQkJCQkgICAgICAJCSQoIiNwYWdlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJCQkJICAgICAgCQkkKCIjcGFnZS1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJCQkJICAgICAgCQkkKCIjcGFnZS1iZWFjaC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgogICAgCQkJICAgIAkJCX0pOwoKCiAgICAJCQkkKCAnI3N0cmVlLWluZ3JlJyApLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkJCSAgICAgIGNvbnNvbGUubG9nKCdzdHJlZS1pbmdyZSBjbGlja2VkJyk7CgoJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3N0cmVlLWluZ3JlLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJCQoKICAgIAkJCQl9LCAxNTAwKTsKCgkJCSAgICAgIAkJJCgiI3N0cmVlLWluZ3JlLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsgCgoJCQkgICAgICAJCS8vJCgiI3N0cmVlLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkJICAgICAgCQkkKCIjc3RyZWUtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCSAgICAgIAkJJCgiI3N0cmVlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNzdHJlZS1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQkgICAgICAJCSQoIiNzdHJlZS1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQoKICAgIAkJCX0pOwoKICAgIAkJCSAgICAJCQkkKCAnI3N0cmVlLXJldmlld3MnICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKICAgIAkJCQkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCiAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygnc3RyZWUtcmV2aWV3cyBjbGlja2VkJyk7CgogICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjc3RyZWUtcmV2aWV3cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCSAgICAJCQkJCgogICAgCQkJICAgIAkJCQl9LCAxNTAwKTsKCiAgICAJCQkJCQkgICAgICAJCSQoIiNzdHJlZS1yZXZpZXdzLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsgCgogICAgCQkJCQkJICAgICAgCQkkKCIjc3RyZWUtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJCQkJICAgICAgCQkvLyQoIiNzdHJlZS1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJCQkJICAgICAgCQkkKCIjc3RyZWUtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQkJCQoKICAgIAkJCSAgICAJCQl9KTsKCiAgICAJCQkgICAgCQkJICAgIAkJCSQoICcjc3RyZWUtcmVzdWx0cycgKS5jbGljayggZnVuY3Rpb24oZSkgewogICAgCQkJICAgIAkJCQkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCiAgICAJCQkgICAgCQkJCQkJICAgICAgY29uc29sZS5sb2coJ3N0cmVlLXJlc3VsdHMgY2xpY2tlZCcpOwoKICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjc3RyZWUtcmVzdWx0cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCSAgICAJCQkgICAgCQkJCQoKICAgIAkJCSAgICAJCQkgICAgCQkJCX0sIDE1MDApOwoKICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiNzdHJlZS1yZXN1bHRzLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsgCgogICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiNzdHJlZS1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3N0cmVlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjc3RyZWUtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCSAgICAJCQkJCQoKICAgIAkJCSAgICAJCQkgICAgCQkJfSk7CgogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJJCggJyNzdHJlZS1idXknICkuY2xpY2soIGZ1bmN0aW9uKGUpIHsKICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgY29uc29sZS5sb2coJ3N0cmVlLWJ1eSBjbGlja2VkJyk7CgogICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewogICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3N0cmVlLWJ1eS1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkKCiAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgogICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiNzdHJlZS1idXktYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCiAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjc3RyZWUtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3N0cmVlLWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQkgICAgCQkJICAgIAkJCQkJCgogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJfSk7CgogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSQoICcjc3RyZWUtcmVjJyApLmNsaWNrKCBmdW5jdGlvbihlKSB7CiAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgY29uc29sZS5sb2coJ3N0cmVlLXJlYyBjbGlja2VkJyk7CgogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjc3RyZWUtcmVjLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkKCiAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0sIDE1MDApOwoKICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLXJlYy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoKICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3N0cmVlLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjc3RyZWUtcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CiAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiNzdHJlZS1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkvLyQoIiNzdHJlZS1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkKCiAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJfSk7CgogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCWNvbnNvbGUubG9nKCd0ZXN0eCByZWFkeScpOwoKCQkJCQkJCQkJCQkJCQkJCQkJCSAgICAkKCcjdGVzdHgtcmVzdWx0cycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CiAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgY29uc29sZS5sb2coJ3Rlc3R4LXJlc3VsdHMgY2xpY2tlZCcpOwoKICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CiAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3Rlc3R4LXJlc3VsdHMtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCiAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQoKICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdGVzdHgtcmVzdWx0cy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7IAoKICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgCgogICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCX0pOwoKCgkJCQkJCQkJCQkJCQkJCQkJCQkJICAgICQoJyN2aWdvcmVsbGUtbW9yZScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndmlnb3JlbGxlLW1vcmUgY2xpY2tlZCcpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjdmlnb3JlbGxlLW1vcmUtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQl9LCAxNTAwKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnb3JlbGxlLW1vcmUtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOyAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCX0pOwoKCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkkKCcjcHJlLXJldmlld3MnKS5jbGljayggZnVuY3Rpb24oZSkgewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgY29uc29sZS5sb2coJ3ByZS1yZXZpZXdzIGNsaWNrZWQnKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3ByZS1yZXZpZXdzLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ByZS1yZXZpZXdzLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkvLyQoIiNwcmUtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjcHJlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI2VubGFzdC1yZXZpZXdzIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7IAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJfSk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkkKCcjcHJlLXJlc3VsdHMnKS5jbGljayggZnVuY3Rpb24oZSkgewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgY29uc29sZS5sb2coJ3ByZS1yZXN1bHRzIGNsaWNrZWQnKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3ByZS1yZXN1bHRzLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ByZS1yZXN1bHRzLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjcHJlLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJLy8kKCIjcHJlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI2VubGFzdC1yZXZpZXdzIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7IAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJfSk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJJCgnI2VubGFzdC1yZXZpZXdzJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGNvbnNvbGUubG9nKCdlbmxhc3QtcmV2aWV3cyBjbGlja2VkJyk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyNlbmxhc3QtcmV2aWV3cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0sIDE1MDApOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiNlbmxhc3QtcmV2aWV3cy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ByZS1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ByZS1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiNlbmxhc3QtcmV2aWV3cyIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOyAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCX0pOwoKCSAgICAJCQkgICAgCQkJICAgIAkKCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJJCgnI3ZpZ2FtYXh4LXdoYXQnKS5jbGljayggZnVuY3Rpb24oZSkgewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgY29uc29sZS5sb2coJ3ZpZ2FtYXh4LXdoYXQgY2xpY2tlZCcpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjdmlnYW1heHgtd2hhdC1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0sIDE1MDApOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC13aGF0LWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkvLyQoIiN2aWdhbWF4eC13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1jb21tLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWNvbXBhcmVkLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCX0pOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJJCgnI3ZpZ2FtYXh4LWluZ3JlJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGNvbnNvbGUubG9nKCd2aWdhbWF4eC1pbmdyZSBjbGlja2VkJyk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyN2aWdhbWF4eC1pbmdyZS1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0sIDE1MDApOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1pbmdyZS1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJLy8kKCIjdmlnYW1heHgtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtY29tbS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1jb21wYXJlZC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkgCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQl9KTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSQoJyN2aWdhbWF4eC1yZXZpZXdzJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGNvbnNvbGUubG9nKCd2aWdhbWF4eC1yZXZpZXdzIGNsaWNrZWQnKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3ZpZ2FtYXh4LXJldmlld3MtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQl9LCAxNTAwKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtcmV2aWV3cy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ZpZ2FtYXh4LXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtY29tbS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJfSk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkkKCcjdmlnYW1heHgtYnV5JykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGNvbnNvbGUubG9nKCd2aWdhbWF4eC1idXkgY2xpY2tlZCcpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjdmlnYW1heHgtYnV5LWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWJ1eS1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ZpZ2FtYXh4LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtY29tbS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJfSk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkkKCcjdmlnYW1heHgtY29tbScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndmlnYW1heHgtY29tbSBjbGlja2VkJyk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyN2aWdhbWF4eC1jb21tLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWNvbW0tYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkvLyQoIiN2aWdhbWF4eC1jb21tLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWNvbXBhcmVkLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCX0pOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJJCgnI3ZpZ2FtYXh4LXJlYycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndmlnYW1heHgtcmVjIGNsaWNrZWQnKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3ZpZ2FtYXh4LXJlYy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0sIDE1MDApOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1yZWMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtY29tbS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkvLyQoIiN2aWdhbWF4eC1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWNvbXBhcmVkLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCX0pOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJJCgnI3ZpZ2FtYXh4LWNvbXBhcmVkJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGNvbnNvbGUubG9nKCd2aWdhbWF4eC1jb21wYXJlZCBjbGlja2VkJyk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyN2aWdhbWF4eC1jb21wYXJlZC1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0sIDE1MDApOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1jb21wYXJlZC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpZ2FtYXh4LWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1jb21tLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdmlnYW1heHgtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aWdhbWF4eC1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJLy8kKCIjdmlnYW1heHgtY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJfSk7CQoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJJCgnI2V4dC1yZWMnKS5jbGljayggZnVuY3Rpb24oZSkgewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgY29uc29sZS5sb2coJ2V4dC1yZWMnKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI2V4dC1yZWMtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQl9LCAxNTAwKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjZXh0LXJlYy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJCSAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJfSk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSQoJyN2aXRhbGlrb3ItcmVzdWx0cycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndml0YWxpa29yLXJlc3VsdHMnKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3ZpdGFsaWtvci1yZXN1bHRzLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdGFsaWtvci1yZXN1bHRzLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkJIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQl9KTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJJCgnI3ZwLXJ4LXJldmlldycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndnAtcngtcmV2aWV3Jyk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyN2cC1yeC1yZXZpZXctYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQl9LCAxNTAwKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdnAtcngtcmV2aWV3LWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkJIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQl9KTsKCgkJCQkJCQkJCQkJCQkJCQkJCQkJCSQoJyN2aXRyaXgtd2hhdCcpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndml0cml4LXdoYXQgY2xpY2tlZCcpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjdml0cml4LXdoYXQtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQl9LCAxNTAwKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXdoYXQtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ZpdHJpeC13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC12aWRlby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC10ZWFtLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1zaGFyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0pOwoJCQkJCQkJCQkJCQkJCQkJCQkJCQkkKCcjdml0cml4LWluZ3JlJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGNvbnNvbGUubG9nKCd2aXRyaXgtaW5ncmUgY2xpY2tlZCcpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjdml0cml4LWluZ3JlLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1pbmdyZS1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ZpdHJpeC1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXRlYW0tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1jb21wYXJlZC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXNoYXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCQoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSk7CgoJCQkJCQkJCQkJCQkJCQkJCQkJCQkkKCcjdml0cml4LXZpZGVvJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGNvbnNvbGUubG9nKCd2aXRyaXgtdmlkZW8gY2xpY2tlZCcpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjdml0cml4LXZpZGVvLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC12aWRlby1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJLy8kKCIjdml0cml4LXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXRlYW0tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1jb21wYXJlZC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXNoYXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCQoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSk7CgoJCQkJCQkJCQkJCQkJCQkJCQkJCQkkKCcjdml0cml4LXJldmlld3MnKS5jbGljayggZnVuY3Rpb24oZSkgewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgY29uc29sZS5sb2coJ3ZpdHJpeC1yZXZpZXdzIGNsaWNrZWQnKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3ZpdHJpeC1yZXZpZXdzLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1yZXZpZXdzLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ZpdHJpeC1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtdGVhbS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LWNvbXBhcmVkLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtc2hhcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQl9KTsKCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkkKCcjdml0cml4LWJ1eScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndml0cml4LWJ1eSBjbGlja2VkJyk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyN2aXRyaXgtYnV5LWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1idXktYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ZpdHJpeC1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC10ZWFtLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1zaGFyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0pOwoJCSQoJyN2aXRyaXgtdGVhbScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndml0cml4LXRlYW0gY2xpY2tlZCcpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjdml0cml4LXRlYW0tYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQl9LCAxNTAwKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXRlYW0tYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ZpdHJpeC10ZWFtLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1zaGFyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0pOwoKCQkkKCcjdml0cml4LXJlYycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndml0cml4LXJlYyBjbGlja2VkJyk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJICAgICAgICAJCQlzY3JvbGxUb3A6ICQoJyN2aXRyaXgtcmVjLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1yZWMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtdGVhbS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkvLyQoIiN2aXRyaXgtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1zaGFyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0pOwoKCQkkKCcjdml0cml4LWNvbXBhcmVkJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIGNvbnNvbGUubG9nKCd2aXRyaXgtY29tcGFyZWQgY2xpY2tlZCcpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAgICAgCQkJc2Nyb2xsVG9wOiAkKCcjdml0cml4LWNvbXBhcmVkLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSwgMTUwMCk7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1jb21wYXJlZC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC12aWRlby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC10ZWFtLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ZpdHJpeC1jb21wYXJlZC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXNoYXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCQoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgCgoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJfSk7CgoJCQkJCQkJCQkJCQkJCQkJCQkJCQkKCQkJCQkJCQkJCQkJCQkJCQkJCQkJJCgnI3ZpdHJpeC1zaGFyZScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICBjb25zb2xlLmxvZygndml0cml4LXNoYXJlIGNsaWNrZWQnKTsKCgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgICAgIAkJCXNjcm9sbFRvcDogJCgnI3ZpdHJpeC1zaGFyZS1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0sIDE1MDApOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtc2hhcmUtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJICAgIAkJCSAgICAJCQkgICAgCQkJICAgIAkJCQkJCSAgICAgIAkJJCgiI3ZpdHJpeC1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCSQoIiN2aXRyaXgtdGVhbS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkkKCIjdml0cml4LWNvbXBhcmVkLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgICAJCS8vJCgiI3ZpdHJpeC1zaGFyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCQkJICAgICAgCQkKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkJCQkgICAgIAoKCSAgICAJCQkgICAgCQkJICAgIAkJCSAgICAJCQkgICAgCQkJCX0pOwoKCgokKCcjeDQtd29yaycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCd4NC13b3JrIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI3g0LXdvcmstYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiN4NC13b3JrLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJLy8kKCIjeDQtd29yay1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3g0LWZhcS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3g0LXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN4NC1wZXlyb25pZXMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSAgCQkKCgp9KTsKCgkkKCcjeDQtZmFxJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ3g0LWZhcSBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyN4NC1mYXEtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiN4NC1mYXEtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjeDQtd29yay1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjeDQtZmFxLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjeDQtcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3g0LXBleXJvbmllcy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJICAJCQoKCn0pOwoJCSQoJyN4NC1yZXN1bHRzJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ3g0LXJlc3VsdHMgY2xpY2tlZCcpOwoKCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjeDQtcmVzdWx0cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI3g0LXJlc3VsdHMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjeDQtd29yay1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3g0LWZhcS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjeDQtcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3g0LXBleXJvbmllcy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJICAJCQoKCn0pOwoKLy9TdGFydAokKCcjeDQtcGV5cm9uaWVzJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ3g0LXBleXJvbmllcyBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyN4NC1wZXlyb25pZXMtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiN4NC1wZXlyb25pZXMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjeDQtd29yay1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3g0LWZhcS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3g0LXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCS8vJCgiI3g0LXBleXJvbmllcy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJICAJCQoKCn0pOwovL2VuZAoKCi8vU3RhcnQKJCgnI3plbmVyeC1iZW4nKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnemVuZXJ4LWJlbiBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyN6ZW5lcngtYmVuLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjemVuZXJ4LWJlbi1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCS8vJCgiI3plbmVyeC1iZW4tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN4NC1yZXMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQp9KTsKLy9lbmQKCgoKLy9TdGFydAokKCcjemVuZXJ4LXJlc3VsdHMnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnemVuZXJ4LXJlc3VsdHMgY2xpY2tlZCcpOwoKCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjemVuZXJ4LXJlc3VsdHMtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiN6ZW5lcngtcmVzdWx0cy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiN6ZW5lcngtYmVuLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiN4NC1yZXMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQp9KTsKLy9lbmQKCgoKJCgnI3p5cmV4aW4td2hhdCcpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCd6eXJleGluLXdoYXQgY2xpY2tlZCcpOwoKCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjenlyZXhpbi13aGF0LWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjenlyZXhpbi13aGF0LWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI3p5cmV4aW4taW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKCn0pOwoKCgokKCcjenlyZXhpbi1pbmdyZScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCd6eXJleGluLWluZ3JlIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI3p5cmV4aW4taW5ncmUtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiN6eXJleGluLWluZ3JlLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI3p5cmV4aW4td2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjenlyZXhpbi1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi13YXJuaW5nLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLWNvbXBhcmVkLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1zaGFyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgoKfSk7CgkKCiQoJyN6eXJleGluLXJldmlld3MnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnenlyZXhpbi1yZXZpZXdzIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI3p5cmV4aW4tcmV2aWV3cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI3p5cmV4aW4tcmV2aWV3cy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiN6eXJleGluLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiN6eXJleGluLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4td2FybmluZy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1jb21wYXJlZC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tc2hhcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKCn0pOwkJCQkJCQkJCQkJCQkJCQkJCQkJCQoKJCgnI3p5cmV4aW4tYnV5JykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ3p5cmV4aW4tYnV5IGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI3p5cmV4aW4tYnV5LWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjenlyZXhpbi1idXktYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjenlyZXhpbi13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjenlyZXhpbi1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXdhcm5pbmctYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXNoYXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCgp9KTsJCQkJCQkJCQkJCQkJCQkJCQkJCQkKCiQoJyN6eXJleGluLXJlc3VsdHMnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnenlyZXhpbi1yZXN1bHRzIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI3p5cmV4aW4tcmVzdWx0cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI3p5cmV4aW4tcmVzdWx0cy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiN6eXJleGluLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCS8vJCgiI3p5cmV4aW4tcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4td2FybmluZy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1jb21wYXJlZC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tc2hhcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKfSk7CgokKCcjenlyZXhpbi13YXJuaW5nJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ3p5cmV4aW4td2FybmluZyBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyN6eXJleGluLXdhcm5pbmctYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiN6eXJleGluLXdhcm5pbmctYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjenlyZXhpbi13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiN6eXJleGluLXdhcm5pbmctYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXNoYXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCn0pOwoKJCgnI3p5cmV4aW4tcmVjJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ3p5cmV4aW4tcmVjIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI3p5cmV4aW4tcmVjLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjenlyZXhpbi1yZWMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjenlyZXhpbi13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi13YXJuaW5nLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiN6eXJleGluLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tY29tcGFyZWQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXNoYXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCn0pOwoKJCgnI3p5cmV4aW4tY29tcGFyZWQnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnenlyZXhpbi1jb21wYXJlZCBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyN6eXJleGluLWNvbXBhcmVkLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjenlyZXhpbi1jb21wYXJlZC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiN6eXJleGluLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXdhcm5pbmctYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjenlyZXhpbi1jb21wYXJlZC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCgkJJCgiI3p5cmV4aW4tc2hhcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKfSk7CgokKCcjenlyZXhpbi1zaGFyZScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCd6eXJleGluLXNoYXJlIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI3p5cmV4aW4tc2hhcmUtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiN6eXJleGluLXNoYXJlLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI3p5cmV4aW4td2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4taW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiN6eXJleGluLWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4td2FybmluZy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI3p5cmV4aW4tcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjenlyZXhpbi1jb21wYXJlZC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjenlyZXhpbi1zaGFyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7Cgp9KTsKCgokKCcjbWUtdXAnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnbWUtdXAgY2xpY2tlZCcpOwoKCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjbWUtdXAtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiNtZS11cC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCS8vJCgiI21lLXVwLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjbWUtYmlnZ2VyLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjbWUtcGUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNtZS1wZXRlci1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCgp9KTsKCiQoJyNtZS1iaWdnZXInKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnbWUtYmlnZ2VyIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI21lLWJpZ2dlci1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI21lLWJpZ2dlci1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiNtZS11cC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjbWUtYmlnZ2VyLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjbWUtcGUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNtZS1wZXRlci1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCgp9KTsKCiQoJyNtZS1wZScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdtZS1wZSBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNtZS1wZS1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI21lLXBlLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI21lLXVwLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjbWUtYmlnZ2VyLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiNtZS1wZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI21lLXBldGVyLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkKCn0pOwoKJCgnI21lLXBldGVyJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ21lLXBldGVyIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI21lLXBldGVyLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjbWUtcGV0ZXItYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjbWUtdXAtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNtZS1iaWdnZXItYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNtZS1wZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjbWUtcGV0ZXItYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCQoKfSk7CgokKCcjYm9vc3Qtd2hhdCcpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdib29zdC13aGF0IGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI2Jvb3N0LXdoYXQtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiNib29zdC13aGF0LWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJLy8kKCIjYm9vc3Qtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXJldmlldy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjYm9vc3QtcmVzdWx0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjYm9vc3QtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKfSk7CgokKCcjYm9vc3QtcmV2aWV3JykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ2Jvb3N0LXJldmlldyBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNib29zdC1yZXZpZXctYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiNib29zdC1yZXZpZXctYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjYm9vc3Qtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjYm9vc3QtcmV2aWV3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjYm9vc3QtdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1yZXN1bHQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7Cgp9KTsKCiQoJyNib29zdC12aWRlbycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdib29zdC12aWRlbyBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNib29zdC12aWRlby1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI2Jvb3N0LXZpZGVvLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI2Jvb3N0LXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCS8vJCgiI2Jvb3N0LXJldmlldy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjYm9vc3QtcmVzdWx0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjYm9vc3QtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKfSk7CgokKCcjYm9vc3QtcmVzdWx0JykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ2Jvb3N0LXJlc3VsdCBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNib29zdC1yZXN1bHQtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiNib29zdC1yZXN1bHQtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjYm9vc3Qtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXJldmlldy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiNib29zdC1yZXN1bHQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7Cgp9KTsKCiQoJyNib29zdC1pbmdyZScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdib29zdC1pbmdyZSBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNib29zdC1pbmdyZS1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI2Jvb3N0LWluZ3JlLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI2Jvb3N0LXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1yZXZpZXctYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC12aWRlby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXJlc3VsdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjYm9vc3QtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKfSk7CgokKCcjYm9vc3QtYnV5JykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ2Jvb3N0LWJ1eSBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNib29zdC1idXktYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiNib29zdC1idXktYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjYm9vc3Qtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXJldmlldy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjYm9vc3QtcmVzdWx0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjYm9vc3QtaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCS8vJCgiI2Jvb3N0LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7Cgp9KTsKCiQoJyNib29zdC1yZWMnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnYm9vc3QtcmVjIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI2Jvb3N0LXJlYy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI2Jvb3N0LXJlYy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiNib29zdC13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjYm9vc3QtcmV2aWV3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjYm9vc3QtdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1yZXN1bHQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNib29zdC1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Jvb3N0LWJ1eS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjYm9vc3QtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCn0pOwoKCgokKCcjZW56eXRlLXdoYXQnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnZW56eXRlLXdoYXQgY2xpY2tlZCcpOwoKCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjZW56eXRlLXdoYXQtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiNlbnp5dGUtd2hhdC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCS8vJCgiI2Vuenl0ZS13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtcmV2aWV3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtd2hlcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCgp9KTsKCiQoJyNlbnp5dGUtaW5ncmUnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnZW56eXRlLWluZ3JlIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI2Vuenl0ZS1pbmdyZS1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI2Vuenl0ZS1pbmdyZS1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiNlbnp5dGUtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjZW56eXRlLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtcmV2aWV3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtd2hlcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCgp9KTsKCiQoJyNlbnp5dGUtcmV2aWV3cycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdlbnp5dGUtcmV2aWV3cyBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNlbnp5dGUtcmV2aWV3cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI2Vuenl0ZS1yZXZpZXdzLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI2Vuenl0ZS13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiNlbnp5dGUtcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS1yZXZpZXctYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS13aGVyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKCn0pOwoKJCgnI2Vuenl0ZS1yZXZpZXcnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnZW56eXRlLXJldmlldyBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNlbnp5dGUtcmV2aWV3LWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjZW56eXRlLXJldmlldy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiNlbnp5dGUtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiNlbnp5dGUtcmV2aWV3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtd2hlcmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCgp9KTsKCiQoJyNlbnp5dGUtcmVzdWx0cycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdlbnp5dGUtcmVzdWx0cyBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNlbnp5dGUtcmVzdWx0cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI2Vuenl0ZS1yZXN1bHRzLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI2Vuenl0ZS13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtcmV2aWV3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiNlbnp5dGUtcmVzdWx0cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS13aGVyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKCn0pOwoKJCgnI2Vuenl0ZS13aGVyZScpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdlbnp5dGUtd2hlcmUgY2xpY2tlZCcpOwoKCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjZW56eXRlLXdoZXJlLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjZW56eXRlLXdoZXJlLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI2Vuenl0ZS13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlbnp5dGUtcmV2aWV3LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXJlc3VsdHMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCS8vJCgiI2Vuenl0ZS13aGVyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKCn0pOwoKJCgnI2Vuenl0ZS1yZWMnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnZW56eXRlLXJlYyBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNlbnp5dGUtcmVjLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjZW56eXRlLXJlYy1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiNlbnp5dGUtd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXJldmlldy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2Vuenl0ZS1yZXN1bHRzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZW56eXRlLXdoZXJlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiNlbnp5dGUtcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCgp9KTsKCgokKCcjZXJleG9yLXdoYXQnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnZXJleG9yLXdoYXQgY2xpY2tlZCcpOwoKCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjZXJleG9yLXdoYXQtYXJlYScpLm9mZnNldCgpLnRvcCAtMjAwCgoKfSwgMTUwMCk7CgoJCSQoIiNlcmV4b3Itd2hhdC1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCS8vJCgiI2VyZXhvci13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlcmV4b3ItdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlcmV4b3ItYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7Cgp9KTsKCiQoJyNlcmV4b3ItaW5ncmUnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnZXJleG9yLWluZ3JlIGNsaWNrZWQnKTsKCgkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI2VyZXhvci1pbmdyZS1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI2VyZXhvci1pbmdyZS1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiNlcmV4b3Itd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJLy8kKCIjZXJleG9yLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlcmV4b3ItdmlkZW8tYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlcmV4b3ItYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7Cgp9KTsKCiQoJyNlcmV4b3ItcmV2aWV3cycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdlcmV4b3ItcmV2aWV3cyBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNlcmV4b3ItcmV2aWV3cy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI2VyZXhvci1yZXZpZXdzLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI2VyZXhvci13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiNlcmV4b3ItcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2VyZXhvci12aWRlby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2VyZXhvci1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlcmV4b3ItcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCn0pOwoKJCgnI2VyZXhvci12aWRlbycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdlcmV4b3ItdmlkZW8gY2xpY2tlZCcpOwoKCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjZXJleG9yLXZpZGVvLWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjZXJleG9yLXZpZGVvLWFyZWEiKS5hZGRDbGFzcygiYWxlcnQiKTsKCgkJJCgiI2VyZXhvci13aGF0LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLWluZ3JlLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLXJldmlld3MtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCS8vJCgiI2VyZXhvci12aWRlby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2VyZXhvci1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlcmV4b3ItcmVjLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCn0pOwoKJCgnI2VyZXhvci1idXknKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnZXJleG9yLWJ1eSBjbGlja2VkJyk7CgoJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoewpzY3JvbGxUb3A6ICQoJyNlcmV4b3ItYnV5LWFyZWEnKS5vZmZzZXQoKS50b3AgLTIwMAoKCn0sIDE1MDApOwoKCQkkKCIjZXJleG9yLWJ1eS1hcmVhIikuYWRkQ2xhc3MoImFsZXJ0Iik7CgoJCSQoIiNlcmV4b3Itd2hhdC1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2VyZXhvci1pbmdyZS1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2VyZXhvci1yZXZpZXdzLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLXZpZGVvLWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkvLyQoIiNlcmV4b3ItYnV5LWFyZWEiKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkkKCIjZXJleG9yLXJlYy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7Cgp9KTsKCiQoJyNlcmV4b3ItcmVjJykuY2xpY2soIGZ1bmN0aW9uKGUpIHsKZS5wcmV2ZW50RGVmYXVsdCgpOwoKY29uc29sZS5sb2coJ2VyZXhvci1yZWMgY2xpY2tlZCcpOwoKCSQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjZXJleG9yLXJlYy1hcmVhJykub2Zmc2V0KCkudG9wIC0yMDAKCgp9LCAxNTAwKTsKCgkJJCgiI2VyZXhvci1yZWMtYXJlYSIpLmFkZENsYXNzKCJhbGVydCIpOwoKCQkkKCIjZXJleG9yLXdoYXQtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlcmV4b3ItaW5ncmUtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCSQoIiNlcmV4b3ItcmV2aWV3cy1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2VyZXhvci12aWRlby1hcmVhIikucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJJCgiI2VyZXhvci1idXktYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoJCS8vJCgiI2VyZXhvci1yZWMtYXJlYSIpLnJlbW92ZUNsYXNzKCJhbGVydCIpOwoKfSk7CgovL3ZlcnNpb24gMgoKJCgnI2hsLW9wdGlvbnMnKS5jbGljayggZnVuY3Rpb24oZSkgewplLnByZXZlbnREZWZhdWx0KCk7Cgpjb25zb2xlLmxvZygnaGwtb3B0aW9ucyBjbGlja2VkJyk7CgokKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CnNjcm9sbFRvcDogJCgnI2hsLWFyZWEtb3B0aW9ucycpLm9mZnNldCgpLnRvcCAtMjAwCgp9LCAxNTAwKTsKCgkJJCgnW2NsYXNzXj0iaGwtYXJlYSJdJykucmVtb3ZlQ2xhc3MoImFsZXJ0Iik7CgkJCgkJJCgiI2hsLWFyZWEtb3B0aW9ucyIpLmFkZENsYXNzKCJhbGVydCIpOwoKfSk7CgokKCcjaGwtcmVzdWx0cycpLmNsaWNrKCBmdW5jdGlvbihlKSB7CmUucHJldmVudERlZmF1bHQoKTsKCmNvbnNvbGUubG9nKCdobC1yZXN1bHRzIGNsaWNrZWQnKTsKCiQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKc2Nyb2xsVG9wOiAkKCcjaGwtYXJlYS1yZXN1bHRzJykub2Zmc2V0KCkudG9wIC0yMDAKCn0sIDE1MDApOwoKCQkkKCdbY2xhc3NePSJobC1hcmVhIl0nKS5yZW1vdmVDbGFzcygiYWxlcnQiKTsKCQkKCQkkKCIjaGwtYXJlYS1yZXN1bHRzIikuYWRkQ2xhc3MoImFsZXJ0Iik7Cgp9KTsKCgoKCgovL2RvYyByZWFkeSAgICAgICAgICAgICAgIAp9KTsKLy9Xb3JkcHJlc3MgalF1ZXJ5Cn0pKCBqUXVlcnkgKTsK
5 ms
displays.htm
89 ms
logo.png
30 ms
ebook3.png
83 ms
sizegeneticspic.png
85 ms
penile%20pumps.jpg
84 ms
beware.gif
84 ms
trials.png
86 ms
usedcar.jpg
84 ms
danger.png
85 ms
alpha%20strike.jpg
86 ms
xtremenitro.jpg
86 ms
nitrocut%20results.png
90 ms
testofuel.jpg
88 ms
hypergh14x.jpg
89 ms
espn.gif
90 ms
fhm.jpg
91 ms
menshealth.jpg
90 ms
msnbc_logo.gif
91 ms
guarantee.png
92 ms
vigrx-plus-sdbr.png
93 ms
pills.png
93 ms
prescription.jpg
91 ms
sizegeneticspic.png
97 ms
penile%20pumps.jpg
92 ms
premature-ejaculation-causes.png
98 ms
real-review.png
98 ms
real-review-1.png
98 ms
real-review-2.png
98 ms
why-trust-me.png
99 ms
Size%20Genetics%20extender.jpg
77 ms
Huffington.png
74 ms
logo-footer.png
74 ms
search.png
24 ms
bg-pattern.png
23 ms
font
83 ms
analytics.js
100 ms
wp-emoji-release.min.js
85 ms
all.js
92 ms
2118298516.js
92 ms
white-grad.png
352 ms
api.min.js
121 ms
api.min.js
98 ms
collect
25 ms
all.js
16 ms
04c.png
26 ms
displays.htm
52 ms
js
49 ms
48 ms
bestenhancementreviews.com accessibility score
ARIA
These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader.
Impact
Issue
button, link, and menuitem elements do not have accessible names.
Contrast
These are opportunities to improve the legibility of your content.
Impact
Issue
Background and foreground colors do not have a sufficient contrast ratio.
Navigation
These are opportunities to improve keyboard navigation in your application.
Impact
Issue
Heading elements are not in a sequentially-descending order
Some elements have a [tabindex] value greater than 0
Best practices
These items highlight common accessibility best practices.
Impact
Issue
[user-scalable="no"] is used in the <meta name="viewport"> element or the [maximum-scale] attribute is less than 5.
bestenhancementreviews.com best practices score
Trust and Safety
Impact
Issue
Does not use HTTPS
Ensure CSP is effective against XSS attacks
User Experience
Impact
Issue
Serves images with low resolution
General
Impact
Issue
Detected JavaScript libraries
Browser errors were logged to the console
bestenhancementreviews.com SEO score
Content Best Practices
Format your HTML in a way that enables crawlers to better understand your app’s content.
Impact
Issue
Links do not have descriptive text
Mobile Friendly
Make sure your pages are mobile friendly so users don’t have to pinch or zoom in order to read the content pages. [Learn more](https://developers.google.com/search/mobile-sites/).
Impact
Issue
Document uses legible font sizes
EN
EN
UTF-8
Language claimed in HTML meta tag should match the language actually used on the web page. Otherwise Bestenhancementreviews.com can be misinterpreted by Google and other search engines. Our service has detected that English is used on the page, and it matches the claimed language. Our system also found out that Bestenhancementreviews.com main page’s claimed encoding is utf-8. Use of this encoding format is the best practice as the main page visitors from all over the world won’t have any issues with symbol transcription.
bestenhancementreviews.com
Open Graph data is detected on the main page of Best Enhancement Reviews. This is the best way to make the web page social media friendly. Here is how it looks like on Facebook: